public async Task <IActionResult> Put([FromRoute] int id, [FromBody] WorkingLogDetailDto data) { APIResult apiResult; #region 驗證 DTO 物件的資料一致性 if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, ErrorMessageEnum.傳送過來的資料有問題, payload: data); return(Ok(apiResult)); } #endregion var record = await WorkingLogDetailService.GetAsync(id); if (record != null) { WorkingLogDetailAdapterModel recordTarget = mapper.Map <WorkingLogDetailAdapterModel>(data); recordTarget.Id = id; var result = mapper.Map <WorkingLogDetailDto>(recordTarget); #region 修改記錄前的紀錄完整性檢查 VerifyRecordResult verify = await WorkingLogDetailService.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 WorkingLogDetailService.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)); }
public async Task <IActionResult> Post([FromBody] WorkingLogDetailDto data) { APIResult apiResult; #region 驗證 DTO 物件的資料一致性 if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, ErrorMessageEnum.傳送過來的資料有問題, payload: null); return(Ok(apiResult)); } #endregion WorkingLogDetailAdapterModel record = mapper.Map <WorkingLogDetailAdapterModel>(data); if (record != null) { var result = mapper.Map <WorkingLogDetailDto>(record); #region 新增記錄前的紀錄完整性檢查 VerifyRecordResult verify = await WorkingLogDetailService.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 WorkingLogDetailService.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 WorkingLogDetailPageViewModel(INavigationService navigationService, IPageDialogService dialogService, WorkingLogDetailService workingLogDetailService, ProjectService projectService, RefreshTokenService refreshTokenService, SystemStatusService systemStatusService, AppStatus appStatus) { this.navigationService = navigationService; this.dialogService = dialogService; this.workingLogDetailService = workingLogDetailService; this.projectService = projectService; this.refreshTokenService = refreshTokenService; this.systemStatusService = systemStatusService; this.appStatus = appStatus; #region 新增紀錄 AddCommand = new DelegateCommand(async() => { NavigationParameters paras = new NavigationParameters(); var fooObject = new WorkingLogDetailDto(); fooObject.WorkingLogId = MasterItem.Id; paras.Add(MagicStringHelper.CurrentSelectdItemParameterName, fooObject); paras.Add(MagicStringHelper.CrudActionName, MagicStringHelper.CrudAddAction); paras.Add(MagicStringHelper.MasterRecordActionName, MasterItem); await navigationService.NavigateAsync("WorkingLogDetailRecordPage", paras); }); #endregion #region 點選某筆紀錄觸發命令 ItemTappedCommand = new DelegateCommand(async() => { NavigationParameters paras = new NavigationParameters(); var fooObject = SelectedItem.Clone(); paras.Add(MagicStringHelper.CurrentSelectdItemParameterName, fooObject); paras.Add(MagicStringHelper.CrudActionName, MagicStringHelper.CrudEditAction); paras.Add(MagicStringHelper.MasterRecordActionName, MasterItem); await navigationService.NavigateAsync("WorkingLogDetailRecordPage", paras); }); #endregion #region 更新遠端紀錄命令 RefreshCommand = new DelegateCommand(async() => { IsRefresh = true; await ReloadData(); IsRefresh = false; }); #endregion }