Exemplo n.º 1
0
        partial void BeforeCopyProperties(IBillExpense other, ref bool handled)
        {
            other.CheckArgument(nameof(other));
            other.Bill.CheckArgument(nameof(other.Bill));
            other.Expenses.CheckArgument(nameof(other.Expenses));
            other.Balances.CheckArgument(nameof(other.Balances));

            handled         = true;
            TotalExpense    = other.TotalExpense;
            FriendPortion   = other.FriendPortion;
            NumberOfFriends = other.NumberOfFriends;
            Friends         = other.Friends;
            FriendAmounts   = other.FriendAmounts;
            BilllEntity.CopyProperties(other.Bill);
            ExpenseEntities.Clear();
            foreach (var item in other.Expenses)
            {
                var expense = new Expense();

                expense.CopyProperties(item);
                ExpenseEntities.Add(expense);
            }
            BalanceEntities.Clear();
            foreach (var item in other.Balances)
            {
                var balance = new Balance();

                balance.CopyProperties(item);
                BalanceEntities.Add(balance);
            }
        }
Exemplo n.º 2
0
        public void CopyProperties(IBillExpense other)
        {
            other.CheckArgument(nameof(other));
            other.Bill.CheckArgument(nameof(other.Bill));
            other.Expenses.CheckArgument(nameof(other.Expenses));

            BillEntity.CopyProperties(other.Bill);
            ExpenseEntities.Clear();
            foreach (var item in other.Expenses)
            {
                var expense = new Expense();

                expense.CopyProperties(item);
                ExpenseEntities.Add(expense);
            }
        }
Exemplo n.º 3
0
        partial void BeforeCopyProperties(IBillExpense other, ref bool handled)
        {
            other.CheckArgument(nameof(other));
            other.Bill.CheckArgument(nameof(other.Bill));
            other.Expenses.CheckArgument(nameof(other.Expenses));

            handled = true;
            BillEntity.CopyProperties(other.Bill);
            ExpenseEntities.Clear();
            foreach (var item in other.Expenses)
            {
                var expense = new Expense();

                expense.CopyProperties(item);
                ExpenseEntities.Add(expense);
            }
        }
        public async Task <IBillExpense> UpdateAsync(IBillExpense entity)
        {
            entity.CheckArgument(nameof(entity));
            entity.Bill.CheckArgument(nameof(entity.Bill));
            entity.Expenses.CheckArgument(nameof(entity.Expenses));

            //Delete all costs that are no longer included in the list.
            foreach (var item in await expenseController.QueryAsync(e => e.BillId == entity.Bill.Id))
            {
                var tmpExpense = entity.Expenses.SingleOrDefault(i => i.Id == item.Id);

                if (tmpExpense == null)
                {
                    await expenseController.DeleteAsync(item.Id);
                }
            }

            var result = new BillExpense();
            var bill   = await billController.UpdateAsync(entity.Bill);

            result.BillEntity.CopyProperties(bill);
            foreach (var item in entity.Expenses)
            {
                if (item.Id == 0)
                {
                    item.BillId = entity.Bill.Id;
                    var insEntity = await expenseController.InsertAsync(item);

                    item.CopyProperties(insEntity);
                }
                else
                {
                    var updEntity = await expenseController.UpdateAsync(item);

                    item.CopyProperties(updEntity);
                }
            }
            return(result);
        }
        public async Task <IBillExpense> InsertAsync(IBillExpense entity)
        {
            entity.CheckArgument(nameof(entity));
            entity.Bill.CheckArgument(nameof(entity.Bill));
            entity.Expenses.CheckArgument(nameof(entity.Expenses));

            var result = new BillExpense();

            result.BillEntity.CopyProperties(entity.Bill);
            await billController.InsertAsync(result.BillEntity);

            foreach (var item in entity.Expenses)
            {
                var expense = new Expense();

                expense.CopyProperties(item);
                expense.Bill = result.BillEntity;

                await expenseController.InsertAsync(expense);

                result.ExpenseEntities.Add(expense);
            }
            return(result);
        }