Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
 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);
 }