/// <summary> /// 编辑Form /// </summary> protected virtual async Task Update(FormEditDto input) { var entity = await _formRepository.GetAsync(input.Id); input.MapTo(entity); await _formRepository.UpdateAsync(entity); }
/// <summary> /// 新增Form /// </summary> protected virtual async Task <FormEditDto> Create(FormEditDto input) { var entity = input.MapTo <Form>(); entity = await _formRepository.InsertAsync(entity); return(entity.MapTo <FormEditDto>()); }
/// <summary> /// 获取编辑 Form /// </summary> public async Task <GetFormForEditOutput> GetForEdit(EntityDto <string> input) { var output = new GetFormForEditOutput(); FormEditDto editDto; if (!string.IsNullOrEmpty(input.Id)) { var entity = await _formRepository.GetAsync(input.Id); editDto = entity.MapTo <FormEditDto>(); } else { editDto = new FormEditDto(); } output.Form = editDto; return(output); }
public async Task <IActionResult> Put([FromRoute] int id, [FromBody] FormEditDto model) { try { VerifyUser(); var Data = await facade.Update(model); Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE) .Ok(new { Message = "Data Saved" }); return(Ok(Result)); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public async Task <int> Update(FormEditDto model) { int Updated = 0; using (var transaction = this.dbContext.Database.BeginTransaction()) { try { //validation var dataExist = this.dbContext.GarmentDispositionPurchases.AsNoTracking().Include(s => s.GarmentDispositionPurchaseItems).ThenInclude(s => s.GarmentDispositionPurchaseDetails).FirstOrDefault(s => s.Id == model.Id); if (dataExist == null) { throw new Exception("Data Not Found"); } GarmentDispositionPurchase dataModel = mapper.Map <FormEditDto, GarmentDispositionPurchase>(model); //dataModel.GarmentDispositionPurchaseItems.ForEach(s => { foreach (var s in dataModel.GarmentDispositionPurchaseItems) { //createNew Items if (s.Id == 0) { EntityExtension.FlagForCreate(s, identityService.Username, USER_AGENT); s.IsDispositionCreated = true; s.GarmentDispositionPurchaseId = dataModel.Id; var afterCreateItem = this.dbContext.GarmentDispositionPurchaseItems.Add(s); //s.GarmentDispositionPurchaseDetails.ForEach(t => foreach (var t in s.GarmentDispositionPurchaseDetails) { if (t.QTYRemains <= 0) { var EPOItems1 = this.dbContext.GarmentExternalPurchaseOrderItems.AsNoTracking().Where(a => a.Id == t.EPO_POId).FirstOrDefault(); EPOItems1.IsDispositionCreatedAll = true; EntityExtension.FlagForUpdate(EPOItems1, identityService.Username, USER_AGENT); var afterUpdateModel1 = this.dbContext.GarmentExternalPurchaseOrderItems.Update(EPOItems1); //dbContext.SaveChanges(); } if (t.Id <= 0) { EntityExtension.FlagForCreate(t, identityService.Username, USER_AGENT); t.GarmentDispositionPurchaseItemId = afterCreateItem.Entity.Id; var afterCreateDetail = this.dbContext.GarmentDispositionPurchaseDetailss.Add(t); //this.dbContext.SaveChanges(); } else { EntityExtension.FlagForUpdate(t, identityService.Username, USER_AGENT); var afterCreateDetail = this.dbContext.GarmentDispositionPurchaseDetailss.Update(t); //this.dbContext.SaveChanges(); } } this.dbContext.SaveChanges(); } else//updatet data if items Exist { EntityExtension.FlagForUpdate(s, identityService.Username, USER_AGENT); var afterCreateItem = this.dbContext.GarmentDispositionPurchaseItems.Update(s); this.dbContext.SaveChanges(); //s.GarmentDispositionPurchaseDetails.ForEach(t => foreach (var t in s.GarmentDispositionPurchaseDetails) { if (t.QTYRemains <= 0) { var EPOItems2 = this.dbContext.GarmentExternalPurchaseOrderItems.AsNoTracking().Where(a => a.Id == t.EPO_POId).FirstOrDefault(); EPOItems2.IsDispositionCreatedAll = true; EntityExtension.FlagForUpdate(EPOItems2, identityService.Username, USER_AGENT); this.dbContext.GarmentExternalPurchaseOrderItems.Update(EPOItems2); dbContext.SaveChanges(); } else { var EPOItems3 = this.dbContext.GarmentExternalPurchaseOrderItems.AsNoTracking().Where(a => a.Id == t.EPO_POId).FirstOrDefault(); EPOItems3.IsDispositionCreatedAll = false; EntityExtension.FlagForUpdate(EPOItems3, identityService.Username, USER_AGENT); this.dbContext.GarmentExternalPurchaseOrderItems.Update(EPOItems3); dbContext.SaveChanges(); } if (t.Id == 0) { EntityExtension.FlagForCreate(t, identityService.Username, USER_AGENT); t.GarmentDispositionPurchaseItemId = afterCreateItem.Entity.Id; var afterCreateDetail = this.dbContext.GarmentDispositionPurchaseDetailss.Add(t); this.dbContext.SaveChanges(); } else { EntityExtension.FlagForUpdate(t, identityService.Username, USER_AGENT); var afterCreateDetail = this.dbContext.GarmentDispositionPurchaseDetailss.Update(t); this.dbContext.SaveChanges(); } //}); } } //deleted detail when not exist anymore var detailsPerItems = dataExist.GarmentDispositionPurchaseItems.SelectMany(j => j.GarmentDispositionPurchaseDetails).Where(j => j.GarmentDispositionPurchaseItemId == s.Id); var detailsFormPerItem = s.GarmentDispositionPurchaseDetails.Select(j => j.Id).ToList(); var deletedDetails = detailsPerItems.Where(j => !detailsFormPerItem.Contains(j.Id)).ToList(); //deletedDetails.ForEach(j => foreach (var j in deletedDetails) { var EPOItems = this.dbContext.GarmentExternalPurchaseOrderItems.AsNoTracking().Where(a => a.Id == j.EPO_POId).FirstOrDefault(); EPOItems.IsDispositionCreatedAll = false; EntityExtension.FlagForUpdate(EPOItems, identityService.Username, USER_AGENT); this.dbContext.GarmentExternalPurchaseOrderItems.Update(EPOItems); dbContext.SaveChanges(); EntityExtension.FlagForDelete(j, identityService.Username, USER_AGENT); this.dbContext.GarmentDispositionPurchaseDetailss.Update(j); dbContext.SaveChanges(); //}); } //}); } //deleted items var dataformItems = dataModel.GarmentDispositionPurchaseItems.Select(t => t.Id).ToList(); var deletedItems = dataExist.GarmentDispositionPurchaseItems.Where(s => !dataformItems.Contains(s.Id)).ToList(); //deletedItems.ForEach(t => foreach (var t in deletedItems) { EntityExtension.FlagForDelete(t, identityService.Username, USER_AGENT); var afterDeletedItems = this.dbContext.GarmentDispositionPurchaseItems.Update(t); dbContext.SaveChanges(); //}); } var modelParentUpdate = this.dbContext.GarmentDispositionPurchases.FirstOrDefault(t => t.Id == dataModel.Id); modelParentUpdate.Amount = dataModel.Amount; modelParentUpdate.Bank = dataModel.Bank; modelParentUpdate.Category = dataModel.Category; modelParentUpdate.ConfirmationOrderNo = dataModel.ConfirmationOrderNo; modelParentUpdate.CurrencyDate = dataModel.CurrencyDate; modelParentUpdate.CurrencyId = dataModel.CurrencyId; modelParentUpdate.CurrencyName = dataModel.CurrencyName; modelParentUpdate.Description = dataModel.Description; modelParentUpdate.DispositionNo = dataModel.DispositionNo; modelParentUpdate.Dpp = dataModel.Dpp; modelParentUpdate.DueDate = dataModel.DueDate; modelParentUpdate.IncomeTax = dataModel.IncomeTax; modelParentUpdate.InvoiceProformaNo = dataModel.InvoiceProformaNo; modelParentUpdate.OtherCost = dataModel.OtherCost; modelParentUpdate.PaymentType = dataModel.PaymentType; modelParentUpdate.SupplierCode = dataModel.SupplierCode; modelParentUpdate.SupplierId = dataModel.SupplierId; modelParentUpdate.SupplierIsImport = dataModel.SupplierIsImport; modelParentUpdate.SupplierName = dataModel.SupplierName; modelParentUpdate.VAT = dataModel.VAT; var afterUpdateModel = dbContext.GarmentDispositionPurchases.Update(modelParentUpdate); Updated = dbContext.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw new Exception(e.Message); } } return(Updated); }