public AbstractEntities.Transfer UpdateTransfer(AbstractEntities.TransferUpdate transferUpdate) { if (transferUpdate == null) { throw new ArgumentNullException("transferUpdate"); } lock (syncObject) { var updater = new TransferUpdater(context); return(updater.UpdateTransfer(transferUpdate)); } }
public static void Update(this Transfer target, AbstractEntities.TransferUpdate source) { if (source == null || target == null) { return; } target.CategoryId = source.CategoryId; target.CurrencyId = source.CurrencyId; target.Discount = source.Discount; target.Note = source.Note; target.PartnerId = source.PartnerId; target.Title = source.Title; target.Time = source.Time; }
private void UpdateItems(Transfer record, AbstractEntities.TransferUpdate transferUpdate) { if (record.Items == null && transferUpdate.Items != null) { AddAllItems(record, transferUpdate.Items); return; } if (transferUpdate.Items == null || transferUpdate.Items.Count() <= 0) { RemoveAllItems(record); return; } var existingItems = new HashSet <AbstractEntities.TransferItemUpdate>(); var itemsToRemoveFromRecord = new List <TransferItem>(); UpdateExistingItems(record, transferUpdate.Items, existingItems, itemsToRemoveFromRecord); RemoveItems(record, itemsToRemoveFromRecord); AddNewItems(record, transferUpdate.Items, existingItems); }
public AbstractEntities.Transfer UpdateTransfer(AbstractEntities.TransferUpdate transferUpdate) { var record = context.Transfers .Include(t => t.Items) .SingleOrDefault(c => c.Id == transferUpdate.Id); if (record == null) { throw new RecordDoesNotExistException($"Transfer with ID {transferUpdate.Id} does not exist."); } RetrieveNavigationProperties(record, transferUpdate); record.Update(transferUpdate); UpdateItems(record, transferUpdate); context.Update(record); context.SaveChanges(); UpdateNavigationProperties(record); return(record.ToAbstract()); }
private void RetrieveNavigationProperties(Transfer record, AbstractEntities.TransferUpdate transferUpdate) { category = QueryHelper.GetCategory(context, transferUpdate.CategoryId); currency = QueryHelper.GetCurrency(context, transferUpdate.CurrencyId); partner = QueryHelper.GetPartner(context, transferUpdate.PartnerId); }