/// <summary>
 /// 訊息對話窗設定
 /// </summary>
 public async Task CheckDatabaseResult(MessageBoxModel messageBox,
                                       VerifyRecordResult verifyRecordResult)
 {
     MessageBox = messageBox;
     if (verifyRecordResult.Success == false)
     {
         if (verifyRecordResult.MessageId == CommonDomain.Enums.ErrorMessageEnum.客製化文字錯誤訊息)
         {
             string message;
             if (verifyRecordResult.Exception == null)
             {
                 message = $"{verifyRecordResult.Message}";
             }
             else
             {
                 message = $"{verifyRecordResult.Message},例外異常:{verifyRecordResult.Exception.Message}";
             }
             MessageBox.Show("400px", "200px", "發生例外異常", message, MessageBox.HiddenAsync);
             EventAggregator.GetEvent <ToastEvent>().Publish(new ToastPayload()
             {
                 Title   = "重要通知",
                 Content = "系統發生例外異常,請查詢系統日誌系統來查看發生原因",
                 Timeout = 7000,
                 Color   = "Red",
             });
         }
     }
     await Task.Yield();
 }
コード例 #2
0
        public async Task <IActionResult> Delete([FromRoute] int id)
        {
            APIResult apiResult;
            var       record = await OrderService.GetAsync(id);

            var result = mapper.Map <OrderMasterDto>(record);

            if (record != null && record.Id != 0)
            {
                #region 刪除記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await OrderService.BeforeDeleteCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await OrderService.DeleteAsync(id);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted,
                                                       ErrorMessageEnum.None, payload: null);
                }
                else
                {
                    if (verifyRecordResult.MessageId == ErrorMessageEnum.客製化文字錯誤訊息)
                    {
                        if (verifyRecordResult.Exception == null)
                        {
                            apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                               verifyRecordResult.Message, payload: result);
                        }
                        else
                        {
                            apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                               verifyRecordResult.Message, payload: result,
                                                               exceptionMessage: verifyRecordResult.Exception.Message,
                                                               replaceExceptionMessage: true);
                        }
                    }
                    else
                    {
                        apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                           verifyRecordResult.MessageId, payload: result);
                    }
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.沒有任何符合資料存在, payload: result);
            }
            return(Ok(apiResult));
        }
        public static VerifyRecordResult Build(bool success, ErrorMessageEnum errorMessageEnum = ErrorMessageEnum.None)
        {
            VerifyRecordResult verifyRecordResult = new VerifyRecordResult()
            {
                Success   = success,
                MessageId = errorMessageEnum,
            };

            return(verifyRecordResult);
        }
 public static string GetMessageString(VerifyRecordResult verifyRecordResult)
 {
     if (verifyRecordResult.MessageId == CommonDomain.Enums.ErrorMessageEnum.客製化文字錯誤訊息)
     {
         return(verifyRecordResult.Message);
     }
     else
     {
         return(ErrorMessageMappingHelper.Instance.GetErrorMessage(verifyRecordResult.MessageId));
     }
 }
コード例 #5
0
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] LeaveFormDto data)
        {
            APIResult apiResult;

            #region 驗證 DTO 物件的資料一致性
            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
                return(Ok(apiResult));
            }
            #endregion

            var record = await LeaveFormService.GetAsync(id);

            if (record != null)
            {
                LeaveFormAdapterModel recordTarget = mapper.Map <LeaveFormAdapterModel>(data);
                recordTarget.Id = id;
                var result = mapper.Map <LeaveFormDto>(recordTarget);

                #region 修改記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await LeaveFormService.BeforeUpdateCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await LeaveFormService.UpdateAsync(recordTarget);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted,
                                                       ErrorMessageEnum.None, payload: null);
                }
                else
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageEnum.無法修改紀錄, payload: result);
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.沒有任何符合資料存在, payload: data);
            }
            return(Ok(apiResult));
        }
コード例 #6
0
        /// <summary>
        /// 使用文字內容來回應
        /// </summary>
        /// <param name="success"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static VerifyRecordResult Build(bool success, string message, Exception exception = null)
        {
            VerifyRecordResult verifyRecordResult = new VerifyRecordResult()
            {
                Success   = success,
                MessageId = ErrorMessageEnum.客製化文字錯誤訊息,
                Message   = message,
                Exception = exception,
            };

            return(verifyRecordResult);
        }
コード例 #7
0
        public async Task <IActionResult> Post([FromBody] LeaveFormDto data)
        {
            APIResult apiResult;

            #region 驗證 DTO 物件的資料一致性
            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: null);
                return(Ok(apiResult));
            }
            #endregion

            LeaveFormAdapterModel record = mapper.Map <LeaveFormAdapterModel>(data);
            if (record != null)
            {
                var result = mapper.Map <LeaveFormDto>(record);

                #region 新增記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await LeaveFormService.BeforeAddCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await LeaveFormService.AddAsync(record);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status201Created,
                                                       ErrorMessageEnum.None, payload: result);
                }
                else
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageEnum.無法新增紀錄, payload: result);
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
            }
            return(Ok(apiResult));
        }
        public async Task <IActionResult> Post([FromBody] List <ExceptionRecordDto> datas)
        {
            APIResult apiResult = new APIResult();

            #region 驗證 DTO 物件的資料一致性
            #endregion

            List <ExceptionRecordAdapterModel> records = mapper.Map <List <ExceptionRecordAdapterModel> >(datas);
            if (records != null && records.Count > 0)
            {
                foreach (var record in records)
                {
                    var result = mapper.Map <ExceptionRecordDto>(record);

                    #region 新增記錄前的紀錄完整性檢查
                    VerifyRecordResult verify = await ExceptionRecordService.BeforeAddCheckAsync(record);

                    //if (verify.Success == false)
                    //{
                    //    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                    //          ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                    //          payload: result);
                    //    return Ok(apiResult);
                    //}
                    #endregion

                    var verifyRecordResult = await ExceptionRecordService.AddAsync(record);

                    if (verifyRecordResult.Success)
                    {
                        apiResult = APIResultFactory.Build(true, StatusCodes.Status201Created,
                                                           ErrorMessageEnum.None, payload: null);
                    }
                    else
                    {
                        apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                           ErrorMessageEnum.無法新增紀錄, payload: result);
                    }
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: null);
            }
            apiResult = APIResultFactory.Build(true, StatusCodes.Status201Created,
                                               ErrorMessageEnum.None, payload: datas);
            return(Ok(apiResult));
        }
コード例 #9
0
        public async Task <IActionResult> Delete([FromRoute] int id)
        {
            APIResult apiResult;
            var       record = await LeaveFormService.GetAsync(id);

            var result = mapper.Map <LeaveFormDto>(record);

            if (record != null)
            {
                #region 刪除記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await LeaveFormService.BeforeDeleteCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await LeaveFormService.DeleteAsync(id);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted,
                                                       ErrorMessageEnum.None, payload: null);
                }
                else
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageEnum.無法刪除紀錄, payload: result);
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.沒有任何符合資料存在, payload: result);
            }
            return(Ok(apiResult));
        }
コード例 #10
0
        public async Task <IActionResult> Post([FromBody] OrderMasterDto data)
        {
            APIResult apiResult;

            #region 驗證 DTO 物件的資料一致性
            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
                return(Ok(apiResult));
            }
            #endregion

            OrderMasterAdapterModel record = mapper.Map <OrderMasterAdapterModel>(data);
            if (record != null)
            {
                var result = mapper.Map <OrderMasterDto>(record);

                #region 新增記錄前的紀錄完整性檢查
                VerifyRecordResult verify = await OrderService.BeforeAddCheckAsync(record);

                if (verify.Success == false)
                {
                    apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                       ErrorMessageMappingHelper.Instance.GetErrorMessage(verify.MessageId),
                                                       payload: result);
                    return(Ok(apiResult));
                }
                #endregion

                var verifyRecordResult = await OrderService.AddAsync(record);

                if (verifyRecordResult.Success)
                {
                    apiResult = APIResultFactory.Build(true, StatusCodes.Status201Created,
                                                       ErrorMessageEnum.None, payload: null);
                }
                else
                {
                    if (verifyRecordResult.MessageId == ErrorMessageEnum.客製化文字錯誤訊息)
                    {
                        if (verifyRecordResult.Exception == null)
                        {
                            apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                               verifyRecordResult.Message, payload: result);
                        }
                        else
                        {
                            apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                               verifyRecordResult.Message, payload: result,
                                                               exceptionMessage: verifyRecordResult.Exception.Message,
                                                               replaceExceptionMessage: true);
                        }
                    }
                    else
                    {
                        apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                           verifyRecordResult.MessageId, payload: result);
                    }
                }
            }
            else
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK,
                                                   ErrorMessageEnum.傳送過來的資料有問題, payload: data);
            }
            return(Ok(apiResult));
        }