2017年12月29日 星期五

MSSQL 確認資料是否為當年

SELECT *
FROM MyTable
WHERE YEAR(GETDATE()) = YEAR(@SelectDate)

MSSQL 週一到週五下午五點半過後與假日的規則

DECLARE @SelectDate DateTime = '2017/12/29 17:00';
DECLARE @StartDateTime Datetime = CONVERT(VARCHAR(10), @SelectDate, 111) + ' 17:30:00',
-- 2017-12-11 17:30:00.000 (今天是 2017/12/29 17:00)
@EndDateTime DateTime = CONVERT(VARCHAR(10), @SelectDate + 1, 111);
-- 2017-12-12 00:00:00.000 (今天是 2017/12/29 17:00)
DECLARE @IsFitRull BIT = 1; -- 預設不符合規則

IF (
DATEPART(DW, @SelectDate) IN (1, 7) OR -- 星期六或星期日
(DATEPART(DW, @SelectDate) IN (2, 3, 4, 5, 6) AND
@StartDateTime <= @SelectDate AND @SelectDate < @EndDateTime) -- 星期一 ~ 星期五 17:30 ~ 隔天 00:00
)
BEGIN
SET @IsFitRull = 0;
END
SELECT @IsFitRull

2017年10月13日 星期五

Visual Studio 無法叫用中斷點

解決 Visual Studio 無法叫用中斷點 原始程式碼與原始版本不同

1.把 Visual Studio 關掉
2.把專案中的 bin obj 資料夾刪掉
3.重開 Visual Studio 並建置

完成

2017年10月11日 星期三

Visual Studio 折疊與展開程式碼

(Ctrl + M) + (Ctrl + L)

執行第一次  => 全部展開
執行第二次  => 全部折疊

Kendo 國籍語言包

https://cdnjs.com/libraries/kendo-ui-core

Kendo Ui Loading Mask

kendo.ui.progress($("#id"), true);

Kendo Ui Form 控制項

http://demos.telerik.com/kendo-ui/styling/index

CSS 滑入滑出 translateX

element.style {
  1. transformtranslateX(201px);

Kendo Grid 修改刪除按鈕與功能

columns: [
            { field: "FirstName", title: "First Name" },
            { field: "LastName", title: "Last Name" },
            { field: "Position" },
            { field: "Phone", title: "Phone" },
            { field: "Extension", title: "Ext", format: "{0:#}" },
            { command: [ "edit", "destroy" ] }
        ]

transport: {
                read: {
                    url: crudServiceBaseUrl + "/EmployeeDirectory/All",
                    dataType: "jsonp"
                },
                update: {
                    url: crudServiceBaseUrl + "/EmployeeDirectory/Update",
                    dataType: "jsonp"
                },
                destroy: {
                    url: crudServiceBaseUrl + "/EmployeeDirectory/Destroy",
                    dataType: "jsonp"
                },
                create: {
                    url: crudServiceBaseUrl + "/EmployeeDirectory/Create",
                    dataType: "jsonp"
                },
                parameterMap: function(options, operation) {
                    if (operation !== "read" && options.models) {
                        return {models: kendo.stringify(options.models)};
                    }
                }
            }

2017年10月5日 星期四

.net mvc 錯誤訊息顯示

<system.web>
    <customErrors mode="Off"/>
</system.web>
<system.webServer>
    <httpErrors errorMode="Detailed" />
</system.webServer>

2017年10月1日 星期日

Kendo Ui Notification

Javascript
// 訊息設定
let popupNotification = null;
const msgHideAfter = 1000;
$(document).ready(function () {
    $("body").append("<span id='popupNotification'></span>");
    popupNotification = $("#popupNotification").kendoNotification({
        autoHideAfter: msgHideAfter,
        templates: [{
            type: "success",
            template: `<div class="msg-success msg">
                            <span class="k-icon k-i-check-outline"></span>           
                            <span class="msg-text">#= message #</span>
                        </div>`
        }, {
            type: "error",
            template: `<div class="msg-error msg">
                            <span class="k-icon k-i-warning"></span>           
                            <span class="msg-text">#= message #</span>
                        </div>`
        }, {
            type: "info",
            template: `<div class="msg-info msg">
                            <span class="k-icon k-i-information"></span>           
                            <span class="msg-text">#= message #</span>
                        </div>`
        }]
    }).data("kendoNotification");
});
// 顯示訊息
function showSuccessMsg(message, callback = null) {
    popupNotification.show({
        message: message
    }, "success");
    if (ifFunctionExist(callback))
    {
        callback();
    }
}
function showErrorMsg(message, callback = null) {
    popupNotification.show({
        message: message
    }, "error");
    if (ifFunctionExist(callback)) {
        callback();
    }
}
function showInfoMsg(message, callback = null) {
    popupNotification.show({
        message: message
    }, "info");
    if (ifFunctionExist(callback)) {
        callback();
    }
}

CSS
.msg {
    width: auto;
    font-size: 25px;
    color: white;
    cursor: pointer;
}

.msg .k-icon {
    font-size: 25px;
    padding-left: 15px;
}

.msg-success {
    background-color: rgb(131, 185, 54);
}

.msg-error {
    background-color: rgb(246, 75, 47);
}

.msg-info {
    background-color: rgb(47, 169, 246);
}

.msg-text {
    margin-left: -10px;
    padding-right: 10px;
}

2017年9月29日 星期五

Validate Input in ASP.NET MVC

[HttpPost]
[ValidateInput(false)]
public ActionResult  ValidateInput(string description)
{
   ValidateModel validateInputModel = new ValidateModel();
   validateInputModel.description = description;
   return View(validateInputModel);
}
來源:https://www.codeproject.com/Tips/753483/Validate-Input-in-ASP-NET-MVC

2017年9月28日 星期四

javascript 特殊符號轉換

function htmlEscape(str) {
    return str
        .replace(/&/g, '&amp;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#39;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;');
}

// I needed the opposite function today, so adding here too:
function htmlUnescape(str){
    return str
        .replace(/&quot;/g, '"')
        .replace(/&#39;/g, "'")
        .replace(/&lt;/g, '<')
        .replace(/&gt;/g, '>')
        .replace(/&amp;/g, '&');
}

2017年9月26日 星期二

Kendo Ui Grid Ajax Load

$.ajax({
        url: '/api/....',
        data: { myIDSArray: javascriptArrayOfIDs },
        traditional: true,
        success: function(result) {
            searchResults = result;
        }
    }).done(function() {
        var dataSource = new kendo.data.DataSource({ data: searchResults });
        var grid = $('#myKendoGrid').data("kendoGrid");
        dataSource.read();
        grid.setDataSource(dataSource);
    });

C# JsonResult With HttpStatus Code

public class JsonHttpStatusResult : JsonResult
{
    private readonly HttpStatusCode _httpStatus;

    public JsonHttpStatusResult(object data, HttpStatusCode httpStatus)
    {
        Data = data;
        _httpStatus = httpStatus;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        context.RequestContext.HttpContext.Response.StatusCode = (int)_httpStatus;
        base.ExecuteResult(context);
    }
}
if(thereWereErrors)
{
    var errorModel = new { error = "There was an error" };
    return new JsonHttpStatusResult(errorModel, HttpStatusCode.InternalServerError);
}

remove last word from SQL query

SET @columnSql = SUBSTRING ( @columnSql , 1 , LEN ( @columnSql ) - 1 )