public async Task SendAsync(WorkOrderAdapterModel workOrderAdapterModel) { if (workOrderAdapterModel.Status == MagicHelper.WorkOrderStatus完工) { var flowMasterAdapterModel = await FlowMasterService.GetSourceCodeAsync(workOrderAdapterModel.Code); if (flowMasterAdapterModel != null) { await Task.Yield(); var checkTask = ConfirmMessageBox.ShowAsync("400px", "200px", "確認", "這筆工單已經有送審過了,是否還要繼續送審", ConfirmMessageBox.HiddenAsync); thisView.NeedRefresh(); var checkAgain = await checkTask; if (checkAgain == false) { return; } } CurrentRecord = workOrderAdapterModel; OnWorkOrderSendingDialog(); } else { MessageBox.Show("400px", "200px", "警告", "派工單狀態必須是在完工狀態才可以送審", MessageBox.HiddenAsync); await Task.Yield(); thisView.NeedRefresh(); } }
public async Task <VerifyRecordResult> UpdateAsync(WorkOrderAdapterModel paraObject) { try { WorkOrder itemData = Mapper.Map <WorkOrder>(paraObject); CleanTrackingHelper.Clean <WorkOrder>(context); WorkOrder item = await context.WorkOrder .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == paraObject.Id); if (item == null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法修改紀錄)); } else { CleanTrackingHelper.Clean <WorkOrder>(context); context.Entry(itemData).State = EntityState.Modified; await context.SaveChangesAsync(); CleanTrackingHelper.Clean <WorkOrder>(context); return(VerifyRecordResultFactory.Build(true)); } } catch (Exception ex) { Logger.LogError(ex, "修改記錄發生例外異常"); return(VerifyRecordResultFactory.Build(false, "修改記錄發生例外異常", ex)); } }
async Task OhterDependencyData(WorkOrderAdapterModel data) { var user = await context.MyUser .FirstOrDefaultAsync(x => x.Id == data.EngineerId); if (user != null) { data.EngineerName = user.Name; } return; }
public async Task <VerifyRecordResult> BeforeUpdateCheckAsync(WorkOrderAdapterModel paraObject) { CleanTrackingHelper.Clean <WorkOrder>(context); var searchItem = await context.WorkOrder .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == paraObject.Id); if (searchItem == null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上)); } return(VerifyRecordResultFactory.Build(true)); }
public async Task <VerifyRecordResult> BeforeAddCheckAsync(WorkOrderAdapterModel paraObject) { await Task.Yield(); if (paraObject.CategoryMainId == 0) { return(VerifyRecordResultFactory.Build(false, "請選擇派工單主分類")); } if (paraObject.CategorySubId == 0) { return(VerifyRecordResultFactory.Build(false, "請選擇派工單次分類")); } return(VerifyRecordResultFactory.Build(true)); }
public async Task <WorkOrderAdapterModel> GetAsync(int id) { WorkOrder item = await context.WorkOrder .Include(x => x.CategoryMain) .Include(x => x.CategorySub) .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == id); WorkOrderAdapterModel result = Mapper.Map <WorkOrderAdapterModel>(item); await OhterDependencyData(result); return(result); }
public async Task OnContextMenuClick(ContextMenuClickEventArgs <FlowMasterAdapterModel> args) { CurrentRecord = args.RowInfo.RowData; if (args.Item.Id == "查看來源記錄") { if (CurrentRecord.SourceType == FlowSourceTypeEnum.WorkOrder) { WorkOrderAdapterModel workOrderAdapterModel = JsonConvert .DeserializeObject <WorkOrderAdapterModel>(CurrentRecord.SourceJson); CurrentWorkOrderAdapterModel = workOrderAdapterModel; ShowReviewWorkOrderDialog = true; } } else if (args.Item.Id == "送審") { await SendAsync(CurrentRecord); } }
public async Task <VerifyRecordResult> AddAsync(WorkOrderAdapterModel paraObject) { try { CleanTrackingHelper.Clean <WorkOrder>(context); WorkOrder itemParameter = Mapper.Map <WorkOrder>(paraObject); CleanTrackingHelper.Clean <WorkOrder>(context); await context.WorkOrder .AddAsync(itemParameter); await context.SaveChangesAsync(); CleanTrackingHelper.Clean <WorkOrder>(context); return(VerifyRecordResultFactory.Build(true)); } catch (Exception ex) { Logger.LogError(ex, "新增記錄發生例外異常"); return(VerifyRecordResultFactory.Build(false, "新增記錄發生例外異常", ex)); } }
public async Task <VerifyRecordResult> BeforeDeleteCheckAsync(WorkOrderAdapterModel paraObject) { try { CleanTrackingHelper.Clean <WorkOrder>(context); var searchItem = await context.WorkOrder .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == paraObject.Id); if (searchItem == null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄_要刪除的紀錄已經不存在資料庫上)); } return(VerifyRecordResultFactory.Build(true)); } catch (Exception ex) { return(VerifyRecordResultFactory.Build(false, "刪除記錄發生例外異常", ex)); } }
public async Task ToolbarClickHandler(Syncfusion.Blazor.Navigations.ClickEventArgs args) { if (args.Item.Id == ButtonIdHelper.ButtonIdAdd) { CurrentRecord = new WorkOrderAdapterModel(); #region 針對新增的紀錄所要做的初始值設定商業邏輯 #endregion EditRecordDialogTitle = "新增紀錄"; isNewRecordMode = true; IsShowEditRecord = true; CurrentRecord.CreatedAt = DateTime.Now; CurrentRecord.Status = 0; CurrentRecord.Code = UniqueStringHelper.GetCode(); await GetCategoryMainAdapterModels(); } else if (args.Item.Id == ButtonIdHelper.ButtonIdRefresh) { dataGrid.RefreshGrid(); } }
public async Task OnCommandClicked(CommandClickEventArgs <WorkOrderAdapterModel> args) { WorkOrderAdapterModel item = args.RowData as WorkOrderAdapterModel; if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdEdit) { #region 點選 修改紀錄 按鈕 CurrentRecord = item.Clone(); EditRecordDialogTitle = "修改紀錄"; IsShowEditRecord = true; isNewRecordMode = false; await GetCategoryMainAdapterModels(); await GetCategorySubAdapterModels(item.CategoryMainId); thisView.NeedRefresh(); #endregion } else if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdDelete) { #region 點選 刪除紀錄 按鈕 CurrentNeedDeleteRecord = item; #region 檢查關聯資料是否存在 var checkedResult = await CurrentService .BeforeDeleteCheckAsync(CurrentNeedDeleteRecord); await Task.Delay(100); if (checkedResult.Success == false) { MessageBox.Show("400px", "200px", "警告", ErrorMessageMappingHelper.Instance.GetErrorMessage(checkedResult.MessageId), MessageBox.HiddenAsync); await Task.Yield(); thisView.NeedRefresh(); return; } #endregion #region 刪除這筆紀錄 await Task.Yield(); var checkTask = ConfirmMessageBox.ShowAsync("400px", "200px", "警告", "確認要刪除這筆紀錄嗎?", ConfirmMessageBox.HiddenAsync); thisView.NeedRefresh(); var checkAgain = await checkTask; if (checkAgain == true) { var verifyRecordResult = await CurrentService.DeleteAsync(CurrentNeedDeleteRecord.Id); await TranscationResultHelper.CheckDatabaseResult(MessageBox, verifyRecordResult); dataGrid.RefreshGrid(); } #endregion #endregion } else if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdShowDetailOfMaster) { #region 點選 開啟多筆 CRUD 對話窗 按鈕 IsShowMoreDetailsRecord = true; ShowMoreDetailsRecordDialogTitle = MagicHelper.訂單明細管理功能名稱; MasterRecord masterRecord = new MasterRecord() { Id = item.Id }; Header = masterRecord; if (ShowMoreDetailsGrid != null) { await Task.Delay(100); // 使用延遲,讓 Header 的資料綁定可以成功 ShowMoreDetailsGrid.RefreshGrid(); } #endregion } }