public async Task <bool> Update(SalesMaster entity) { try { var get_single = await salesMasterRepository.Get(entity.Id); if (get_single == null) { throw new ArgumentNullException("Order not found."); } get_single.Remarks = entity.Remarks; get_single.UpdatedAt = entity.UpdatedAt; get_single.UpdatedBy = entity.UpdatedBy; var new_details = new List <SalesDetails>(); var deleted_details = new List <SalesDetails>(); foreach (var item in entity.SalesDetails) { var details_single = entity.SalesDetails.Where(_ => _.Id.Equals(item.Id)).FirstOrDefault(); if (details_single != null) { item.UnitPrice = details_single.UnitPrice; item.Qty = details_single.Qty; item.ProductId = details_single.ProductId; item.Amount = item.UnitPrice * item.Qty; item.UpdatedAt = entity.UpdatedAt; item.UpdatedBy = entity.UpdatedBy; } else { item.Amount = item.UnitPrice * item.Qty; item.CreatedAt = entity.UpdatedAt ?? DateTime.Now; item.CreatedBy = entity.UpdatedBy ?? get_single.CreatedBy; } } var s = await salesMasterRepository.Add(entity); return(s); } catch (Exception ex) { throw ex; } }