Exemple #1
0
        public static ExpenseMember ToEntity(this ExpenseMemberModel model)
        {
            var entity = new ExpenseMember()
            {
                DId      = model.DId,
                MemberId = model.MemberId,
            };

            return(entity);
        }
Exemple #2
0
        public static ExpenseMemberModel ToModel(this ExpenseMember entity)
        {
            var model = new ExpenseMemberModel()
            {
                Id       = entity.Id,
                DId      = entity.DId,
                MemberId = entity.MemberId,
                User     = entity.User.ToModel()
            };

            return(model);
        }
Exemple #3
0
        public static void Initialize(KollektivContext context)
        {
            context.Database.EnsureCreated();
            if (context.Groups.Any())
            {
                return;
            }
            var g1 = new Group {
                Name = "Bogstadveien 47"
            };
            var g2 = new Group {
                Name = "Jentekollektivet"
            };

            context.Groups.Add(g1);
            context.Groups.Add(g2);
            context.SaveChanges();

            var users = new User[]
            {
                new User {
                    GroupID = 1, Name = "Manni"
                },
                new User {
                    GroupID = 1, Name = "Geir"
                },
                new User {
                    GroupID = 1, Name = "Kristine"
                },
                new User {
                    GroupID = 2, Name = "Marianne"
                },
                new User {
                    GroupID = 2, Name = "Mari"
                },
                new User {
                    GroupID = 2, Name = "Kari"
                }
            };

            foreach (User u in users)
            {
                context.Users.Add(u);
            }
            context.SaveChanges();

            var shoppingLists = new ShoppingList[]
            {
                new ShoppingList {
                    GroupID = 1, Name = "Julebord", Completed = false, Date = DateTime.Parse("2017-10-02")
                },
                new ShoppingList {
                    GroupID = 1, Name = "Fellesting", Completed = false, Date = DateTime.Parse("2017-12-03")
                },
                new ShoppingList {
                    GroupID = 2, Name = "Innflytningsfest", Completed = false, Date = DateTime.Parse("2017-03-03")
                }
            };

            foreach (ShoppingList s in shoppingLists)
            {
                context.ShoppingLists.Add(s);
            }
            context.SaveChanges();

            var expenses = new Expense[]
            {
                new Expense {
                    AmountCurrency = "NOK", Completed = false, TotalAmount = 300, ExpenseName = "Internett", Date = DateTime.ParseExact("22/11/2016", "dd/mm/yyyy", null), GroupId = 1, NrOfMembers = 3, Owner = "Manni"
                },
                new Expense {
                    AmountCurrency = "NOK", Completed = false, TotalAmount = 2000, ExpenseName = "Ny oppvaskmaskin", Date = DateTime.ParseExact("22/11/2016", "dd/mm/yyyy", null), GroupId = 1, NrOfMembers = 3, Owner = "Manni"
                },
                new Expense {
                    AmountCurrency = "NOK", Completed = false, TotalAmount = 450, ExpenseName = "Strømregning", Date = DateTime.ParseExact("22/11/2016", "dd/mm/yyyy", null), GroupId = 2, NrOfMembers = 3, Owner = "Kari"
                }
            };

            foreach (Expense e in expenses)
            {
                context.Expenses.Add(e);
            }
            context.SaveChanges();

            var expensemembers = new ExpenseMember[]
            {
                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 100, ExpenseId = 1, MemberName = "Manni", UserId = 1, Paid = false
                },
                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 100, ExpenseId = 1, MemberName = "Geir", UserId = 2, Paid = true
                },
                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 100, ExpenseId = 1, MemberName = "Kristine", UserId = 3, Paid = false
                },

                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 1000, ExpenseId = 2, MemberName = "Marianne", UserId = 4, Paid = false
                },
                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 500, ExpenseId = 2, MemberName = "Mari", UserId = 5, Paid = false
                },
                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 500, ExpenseId = 2, MemberName = "Kari", UserId = 6, Paid = false
                },

                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 200, ExpenseId = 3, MemberName = "Manni", UserId = 1, Paid = true
                },
                new ExpenseMember {
                    AmountCurrency = "NOK", AmountToPay = 250, ExpenseId = 3, MemberName = "Geir", UserId = 2, Paid = true
                }
            };

            foreach (ExpenseMember e in expensemembers)
            {
                context.ExpenseMembers.Add(e);
            }
            context.SaveChanges();

            var shoppinglistitems = new ShoppingListItem[]
            {
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Julepølse"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Poteter"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Akevitt"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Engangsbestikk"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Julepynt"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Pinnekjøtt"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = true, Checkedby = "Manni", Comodity = "Kålrotstappe"
                },
                new ShoppingListItem {
                    ShoppinglistId = 1, Check = false, Comodity = "Ribbe"
                },

                new ShoppingListItem {
                    ShoppinglistId = 2, Check = false, Comodity = "Dopapir"
                },
                new ShoppingListItem {
                    ShoppinglistId = 2, Check = false, Comodity = "Zalo"
                },
                new ShoppingListItem {
                    ShoppinglistId = 2, Check = false, Comodity = "Håndsåpe"
                },
                new ShoppingListItem {
                    ShoppinglistId = 2, Check = false, Comodity = "Ny stekepanne"
                },

                new ShoppingListItem {
                    ShoppinglistId = 3, Check = true, Checkedby = "Marianne", Comodity = "Øltønne"
                },
                new ShoppingListItem {
                    ShoppinglistId = 3, Check = true, Checkedby = "Mari", Comodity = "Ballonger"
                },
                new ShoppingListItem {
                    ShoppinglistId = 3, Check = true, Checkedby = "Kari", Comodity = "Pølser"
                }
            };

            foreach (ShoppingListItem si in shoppinglistitems)
            {
                context.ShoppingListItems.Add(si);
            }



            context.SaveChanges();
        }
 public IActionResult PostExpenseMember([FromBody] ExpenseMember e)
 {
     _context.ExpenseMembers.Add(e);
     _context.SaveChanges();
     return(CreatedAtRoute("GetExpenseMember", new { id = e.ExpenseMemberId }, value: e));
 }
Exemple #5
0
        public async Task <Expense> InsertBillAsync(ExpenseModel bill)
        {
            Expense newBill = new Expense();

            newBill.BillName    = bill.BillName;
            newBill.CreatorId   = bill.CreatorId;
            newBill.Amount      = bill.Amount;
            newBill.CreatedDate = bill.CreatedDate;
            newBill.GroupId     = bill.GroupId;
            _Context.Expense.Add(newBill);


            foreach (var person in bill.Payer)
            {
                Payer payer = new Payer();
                payer.BillId     = newBill.BillId;
                payer.PayerId    = person.Id;
                payer.PaidAmount = person.Amount;
                _Context.Payer.Add(payer);
            }


            foreach (var person in bill.SharedMember)
            {
                ExpenseMember member = new ExpenseMember();
                member.Billid         = newBill.BillId;
                member.SharedMemberId = person.Id;
                member.AmountToPay    = person.Amount;
                _Context.ExpenseMember.Add(member);
            }


            for (var i = 0; i < bill.SharedMember.Count - 1; i++)
            {
                for (var j = i + 1; j < bill.SharedMember.Count; j++)
                {
                    var fExist = _Context.Friend.SingleOrDefault(c => c.UserId == bill.SharedMember[i].Id && c.FriendId == bill.SharedMember[j].Id);
                    if (fExist == null)
                    {
                        var Exist = _Context.Friend.SingleOrDefault(c => c.UserId == bill.SharedMember[j].Id && c.FriendId == bill.SharedMember[i].Id);
                        if (Exist == null)
                        {
                            Friend newFriend = new Friend
                            {
                                UserId   = bill.SharedMember[i].Id,
                                FriendId = bill.SharedMember[j].Id
                            };
                            _Context.Friend.Add(newFriend);
                            await _Context.SaveChangesAsync();
                        }
                    }
                }
            }


            foreach (var data in bill.SettleModels)
            {
                if (data.GroupId == null)
                {
                    var settle = await _Context.Settlement.SingleOrDefaultAsync(c => c.PayerId == data.PayerId && c.SharedMemberId == data.SharedMemberId && c.GroupId == null);

                    if (settle != null)
                    {
                        settle.TotalAmount = settle.TotalAmount + data.TotalAmount;
                        _Context.Settlement.Attach(settle);
                    }
                    else
                    {
                        var setle = await _Context.Settlement.SingleOrDefaultAsync(c => c.PayerId == data.SharedMemberId && c.SharedMemberId == data.PayerId && c.GroupId == null);

                        if (setle != null)
                        {
                            setle.TotalAmount = setle.TotalAmount - data.TotalAmount;
                            _Context.Settlement.Attach(setle);
                        }
                        else
                        {
                            var newSettle = new Settlement();
                            newSettle.PayerId        = data.PayerId;
                            newSettle.SharedMemberId = data.SharedMemberId;
                            newSettle.TotalAmount    = data.TotalAmount;
                            _Context.Settlement.Add(newSettle);
                        }
                    }
                }
                else
                {
                    var settle = await _Context.Settlement.SingleOrDefaultAsync(c => c.PayerId == data.PayerId && c.SharedMemberId == data.SharedMemberId && c.GroupId == data.GroupId);

                    if (settle != null)
                    {
                        settle.TotalAmount = settle.TotalAmount + data.TotalAmount;
                        _Context.Settlement.Attach(settle);
                    }
                    else
                    {
                        var setle = await _Context.Settlement.SingleOrDefaultAsync(c => c.PayerId == data.SharedMemberId && c.SharedMemberId == data.PayerId && c.GroupId == data.GroupId);

                        if (setle != null)
                        {
                            setle.TotalAmount = setle.TotalAmount - data.TotalAmount;
                            _Context.Settlement.Attach(setle);
                        }
                        else
                        {
                            var newSettle = new Settlement();
                            newSettle.PayerId        = data.PayerId;
                            newSettle.SharedMemberId = data.SharedMemberId;
                            newSettle.TotalAmount    = data.TotalAmount;
                            newSettle.GroupId        = data.GroupId;
                            _Context.Settlement.Add(newSettle);
                        }
                    }
                }
            }

            try
            {
                await _Context.SaveChangesAsync();
            }
            catch (System.Exception exp)
            {
                _Logger.LogError($"Error in {nameof(InsertBillAsync)}: " + exp.Message);
            }
            return(newBill);
        }