/// <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(); }
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)); } }
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)); }
/// <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); }
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)); }
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)); }
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)); }