コード例 #1
0
        public async Task <IActionResult> CreateFriendExpenses([FromBody] FriendExpensesData data)
        {
            if (ModelState.IsValid)
            {
                unitofwork.UserRepository.CreateFriendExpense(data);
                await unitofwork.Save();

                unitofwork.UserRepository.AddFriendBill(data);
                await unitofwork.Save();
            }
            return(Ok(data));
        }
コード例 #2
0
        public void CreateFriendExpense(FriendExpensesData friendExpensesData)
        {
            int k = 0;
            int f = 0;
            List <FriendExpense> expense = Context.FriendExpenses.Where(x => x.Paidby == friendExpensesData.Paidby).ToList();

            if (expense.Count != 0)
            {
                foreach (var exp in expense)
                {
                    k = 0;
                    foreach (var i in friendExpensesData.FriendUserExpense)
                    {
                        var b = Context.FriendBills.FirstOrDefault(x => x.FriendId == i.UserId);
                        if (b != null)
                        {
                            k++;
                        }
                    }
                    if (k == friendExpensesData.FriendUserExpense.Count)
                    {
                        exp.Amount += friendExpensesData.Amount;
                        exp.Date    = friendExpensesData.Date;
                        Context.FriendExpenses.Update(exp);
                        f = 1;
                        break;
                    }
                }
                if (f != 1)
                {
                    FriendExpense exp = new FriendExpense();
                    exp.Date        = friendExpensesData.Date;
                    exp.Description = friendExpensesData.Description;
                    exp.Amount      = friendExpensesData.Amount;
                    exp.Split       = friendExpensesData.Split;
                    exp.Paidby      = friendExpensesData.Paidby;
                    Context.FriendExpenses.Add(exp);
                }
            }
            else
            {
                FriendExpense exp = new FriendExpense();
                exp.Date        = friendExpensesData.Date;
                exp.Description = friendExpensesData.Description;
                exp.Amount      = friendExpensesData.Amount;
                exp.Split       = friendExpensesData.Split;
                exp.Paidby      = friendExpensesData.Paidby;
                Context.FriendExpenses.Add(exp);
            }
        }
コード例 #3
0
        public void AddFriendBill(FriendExpensesData data)
        {
            int expId = GetExpenseId(data.Date);
            List <FriendBill>    list = new List <FriendBill>();
            List <FriendBill>    a = Context.FriendBills.Where(x => x.FriendExpId == expId).ToList();
            List <FriendExpense> expense = Context.FriendExpenses.Where(x => x.Paidby == data.Paidby).ToList();
            int f = 0, k = 0;

            if (expense.Count != 0)
            {
                foreach (var exp in expense)
                {
                    k = 0;
                    foreach (var i in data.FriendUserExpense)
                    {
                        var b = Context.FriendBills.FirstOrDefault(x => x.FriendId == i.UserId);
                        if (b != null)
                        {
                            k++;
                        }
                    }
                    if (k == data.FriendUserExpense.Count)
                    {
                        f = 0;
                        foreach (var i in data.FriendUserExpense)
                        {
                            var x = Context.FriendBills.FirstOrDefault(b => b.FriendExpId == exp.Id && b.FriendId == i.UserId);
                            x.Bill += i.Amount;
                            Context.FriendBills.Update(x);
                            f++;
                        }
                    }
                    if (f == k)
                    {
                        break;
                    }
                }
                if (f == 0)
                {
                    foreach (var i in data.FriendUserExpense)
                    {
                        FriendBill bills = new FriendBill();
                        bills.FriendExpId = expId;
                        bills.FriendId    = i.UserId;
                        bills.Bill        = i.Amount;
                        list.Add(bills);
                    }
                    Context.FriendBills.AddRange(list);
                }
            }
            else
            {
                foreach (var i in data.FriendUserExpense)
                {
                    FriendBill bills = new FriendBill();
                    bills.FriendExpId = expId;
                    bills.FriendId    = i.UserId;
                    bills.Bill        = i.Amount;
                    list.Add(bills);
                }
                Context.FriendBills.AddRange(list);
            }
        }