예제 #1
0
        public static Transfer ToDao(this AbstractEntities.NewTransfer dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new Transfer
            {
                CategoryId = dto.CategoryId,
                CurrencyId = dto.CurrencyId,
                Discount = dto.Discount,
                Items = dto.Items.ToDao().ToArray(),
                Note = dto.Note,
                PartnerId = dto.PartnerId,
                Title = dto.Title,
                Time = dto.Time,
            });
        }
예제 #2
0
        public AbstractEntities.Transfer CreateTransfer(AbstractEntities.NewTransfer newTransfer)
        {
            if (newTransfer == null)
            {
                throw new ArgumentNullException("newTransfer");
            }

            lock (syncObject)
            {
                var category = context.Categories.FirstOrDefault(c => c.Id == newTransfer.CategoryId);
                if (category == null)
                {
                    throw new RecordDoesNotExistException($"Category with ID {newTransfer.CategoryId} does not exist.");
                }
                var partner = context.Partners.FirstOrDefault(c => c.Id == newTransfer.PartnerId);
                if (partner == null)
                {
                    throw new RecordDoesNotExistException($"Partner with ID {newTransfer.PartnerId} does not exist.");
                }
                var currency = context.Currencies.FirstOrDefault(c => c.Id == newTransfer.CurrencyId);
                if (currency == null)
                {
                    throw new RecordDoesNotExistException($"Currency with ID {newTransfer.CurrencyId} does not exist.");
                }

                var dao = newTransfer.ToDao();
                dao.Category = category;
                dao.Currency = currency;
                dao.Partner  = partner;

                context.Transfers.Add(dao);
                context.SaveChanges();

                return(dao.ToAbstract());
            }
        }