public async Task <VerifyRecordResult> UpdateAsync(OrderItemAdapterModel paraObject) { try { OrderItem itemData = Mapper.Map <OrderItem>(paraObject); CleanTrackingHelper.Clean <OrderItem>(context); OrderItem item = await context.OrderItem .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == paraObject.Id); if (item == null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法修改紀錄)); } else { CleanTrackingHelper.Clean <OrderItem>(context); context.Entry(itemData).State = EntityState.Modified; await context.SaveChangesAsync(); CleanTrackingHelper.Clean <OrderItem>(context); return(VerifyRecordResultFactory.Build(true)); } } catch (Exception ex) { Logger.LogError(ex, "修改記錄發生例外異常"); return(VerifyRecordResultFactory.Build(false, "修改記錄發生例外異常", ex)); } }
public async Task <VerifyRecordResult> BeforeUpdateCheckAsync(OrderItemAdapterModel paraObject) { CleanTrackingHelper.Clean <OrderItem>(context); if (paraObject.ProductId == 0) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.尚未輸入該訂單要用到的產品)); } var searchItem = await context.OrderItem .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == paraObject.Id); if (searchItem == null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上)); } searchItem = await context.OrderItem .AsNoTracking() .FirstOrDefaultAsync(x => x.OrderMasterId == paraObject.OrderMasterId && x.ProductId == paraObject.ProductId && x.Id != paraObject.Id); if (searchItem != null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.該訂單已經存在該產品_不能重複同樣的商品在一訂單內)); } return(VerifyRecordResultFactory.Build(true)); }
public async Task OnCommandClicked(CommandClickEventArgs <OrderItemAdapterModel> args) { OrderItemAdapterModel item = args.RowData as OrderItemAdapterModel; if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdEdit) { CurrentRecord = item.Clone(); EditRecordDialogTitle = "修改紀錄"; IsShowEditRecord = true; isNewRecordMode = false; } else if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdDelete) { 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)); await Task.Yield(); thisRazorComponent.NeedRefresh(); return; } #endregion ConfirmMessageBox.Show("400px", "200px", "警告", "確認要刪除這筆紀錄嗎?"); } }
public async Task OnCommandClicked(CommandClickEventArgs <OrderItemAdapterModel> args) { OrderItemAdapterModel item = args.RowData as OrderItemAdapterModel; if (args.CommandColumn.ButtonOption.IconCss == ButtonIdHelper.ButtonIdEdit) { #region 點選 修改紀錄 按鈕 CurrentRecord = item.Clone(); EditRecordDialogTitle = "修改紀錄"; IsShowEditRecord = true; isNewRecordMode = false; #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(); await thisView.NeedRefreshAsync(); return; } #endregion #region 刪除這筆紀錄 await Task.Yield(); var checkTask = ConfirmMessageBox.ShowAsync("400px", "200px", "警告", "確認要刪除這筆紀錄嗎?", ConfirmMessageBox.HiddenAsync); await thisView.NeedRefreshAsync(); var checkAgain = await checkTask; if (checkAgain == true) { var verifyRecordResult = await CurrentService.DeleteAsync(CurrentNeedDeleteRecord.Id); await TranscationResultHelper.CheckDatabaseResult(MessageBox, verifyRecordResult); dataGrid.RefreshGrid(); } #endregion #endregion } }
public async Task <IActionResult> Put([FromRoute] int id, [FromBody] OrderItemDto data) { APIResult apiResult; #region 驗證 DTO 物件的資料一致性 if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, ErrorMessageEnum.傳送過來的資料有問題, payload: data); return(Ok(apiResult)); } #endregion var record = await OrderItemService.GetAsync(id); if (record != null && record.Id != 0) { OrderItemAdapterModel recordTarget = mapper.Map <OrderItemAdapterModel>(data); recordTarget.Id = id; var result = mapper.Map <OrderItemDto>(recordTarget); #region 修改記錄前的紀錄完整性檢查 VerifyRecordResult verify = await OrderItemService.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 OrderItemService.UpdateAsync(recordTarget); if (verifyRecordResult.Success) { apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted, ErrorMessageEnum.None, payload: null); } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, verifyRecordResult.MessageId, payload: result); } } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, ErrorMessageEnum.沒有任何符合資料存在, payload: data); } return(Ok(apiResult)); }
public async Task <OrderItemAdapterModel> GetAsync(int id) { OrderItem item = await context.OrderItem .AsNoTracking() .Include(x => x.Product) .FirstOrDefaultAsync(x => x.Id == id); OrderItemAdapterModel result = Mapper.Map <OrderItemAdapterModel>(item); await OhterDependencyData(result); return(result); }
public async Task <VerifyRecordResult> AddAsync(OrderItemAdapterModel paraObject) { OrderItem itemParameter = Mapper.Map <OrderItem>(paraObject); CleanTrackingHelper.Clean <OrderItem>(context); await context.OrderItem .AddAsync(itemParameter); await context.SaveChangesAsync(); CleanTrackingHelper.Clean <OrderItem>(context); return(VerifyRecordResultFactory.Build(true)); }
public async Task <VerifyRecordResult> BeforeDeleteCheckAsync(OrderItemAdapterModel paraObject) { CleanTrackingHelper.Clean <OrderItem>(context); var searchItem = await context.OrderItem .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == paraObject.Id); if (searchItem == null) { return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄_要刪除的紀錄已經不存在資料庫上)); } return(VerifyRecordResultFactory.Build(true)); }
public async Task <IActionResult> Post([FromBody] OrderItemDto data) { APIResult apiResult; #region 驗證 DTO 物件的資料一致性 if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, ErrorMessageEnum.傳送過來的資料有問題, payload: data); return(Ok(apiResult)); } #endregion OrderItemAdapterModel record = mapper.Map <OrderItemAdapterModel>(data); if (record != null) { var result = mapper.Map <OrderItemDto>(record); #region 新增記錄前的紀錄完整性檢查 VerifyRecordResult verify = await OrderItemService.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 OrderItemService.AddAsync(record); if (verifyRecordResult.Success) { apiResult = APIResultFactory.Build(true, StatusCodes.Status201Created, ErrorMessageEnum.None, payload: null); } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, verifyRecordResult.MessageId, payload: result); } } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status200OK, ErrorMessageEnum.傳送過來的資料有問題, payload: data); } return(Ok(apiResult)); }
public void ToolbarClickHandler(Syncfusion.Blazor.Navigations.ClickEventArgs args) { if (args.Item.Text == "新增") { CurrentRecord = new OrderItemAdapterModel(); EditRecordDialogTitle = "新增紀錄"; isNewRecordMode = true; IsShowEditRecord = true; CurrentRecord.OrderId = Header.Id; CurrentRecord.OrderName = Header.Title; } else if (args.Item.Text == "重新整理") { dataGrid.RefreshGrid(); } }
public void ToolbarClickHandler(Syncfusion.Blazor.Navigations.ClickEventArgs args) { if (args.Item.Id == ButtonIdHelper.ButtonIdAdd) { CurrentRecord = new OrderItemAdapterModel(); #region 針對新增的紀錄所要做的初始值設定商業邏輯 #endregion EditRecordDialogTitle = "新增紀錄"; isNewRecordMode = true; IsShowEditRecord = true; CurrentRecord.OrderId = Header.Id; //CurrentRecord.Name = Header.Title; } else if (args.Item.Id == ButtonIdHelper.ButtonIdRefresh) { dataGrid.RefreshGrid(); } }
public void OnCommandClicked(CommandClickEventArgs <OrderItemAdapterModel> args) { OrderItemAdapterModel item = args.RowData as OrderItemAdapterModel; if (args.CommandColumn.ButtonOption.Content == "修改") { CurrentRecord = item; EditRecordDialogTitle = "修改紀錄"; IsShowEditRecord = true; isNewRecordMode = false; } else if (args.CommandColumn.ButtonOption.Content == "刪除") { #region 檢查關聯資料是否存在 #endregion CurrentNeedDeleteRecord = item; ConfirmMessageBox.Show("400px", "200px", "警告", "確認要刪除這筆紀錄嗎?"); } }
public async Task <VerifyRecordResult> AddAsync(OrderItemAdapterModel paraObject) { try { OrderItem itemParameter = Mapper.Map <OrderItem>(paraObject); CleanTrackingHelper.Clean <OrderItem>(context); await context.OrderItem .AddAsync(itemParameter); await context.SaveChangesAsync(); CleanTrackingHelper.Clean <OrderItem>(context); return(VerifyRecordResultFactory.Build(true)); } catch (Exception ex) { Logger.LogError(ex, "新增記錄發生例外異常"); return(VerifyRecordResultFactory.Build(false, "新增記錄發生例外異常", ex)); } }
Task OhterDependencyData(OrderItemAdapterModel data) { data.ProductName = data.Product.Name; return(Task.FromResult(0)); }
public Task <VerifyRecordResult> BeforeDeleteCheckAsync(OrderItemAdapterModel paraObject) { return(Task.FromResult(VerifyRecordResultFactory.Build(true))); }