public override async Task DeleteAsync(long id) { DOReturnModel model = await ReadByIdAsync(id); foreach (var detail in model.DOReturnDetails) { await doReturnDetailLogic.DeleteAsync(detail.Id); } EntityExtension.FlagForDelete(model, IdentityService.Username, "sales-service", true); DbSet.Update(model); }
public override async void UpdateAsync(long id, DOReturnModel model) { try { if (model.DOReturnDetails != null) { HashSet <long> detailIds = doReturnDetailLogic.GetIds(id); foreach (var itemId in detailIds) { DOReturnDetailModel data = model.DOReturnDetails.FirstOrDefault(prop => prop.Id.Equals(itemId)); if (data == null) { await doReturnDetailLogic.DeleteAsync(itemId); } else { doReturnDetailLogic.UpdateAsync(itemId, data); } } foreach (DOReturnDetailModel item in model.DOReturnDetails) { if (item.Id == 0) { doReturnDetailLogic.Create(item); } } } EntityExtension.FlagForUpdate(model, IdentityService.Username, "sales-service"); DbSet.Update(model); } catch (Exception ex) { throw ex; } }