Esempio n. 1
0
        public ActionResult CreateJoinHouseHold(HouseHoldViewModel model, Guid?code)
        {
            if (User.Identity.IsInHouseHoldId())
            {
                return(RedirectToAction("Index", "Home"));
            }
            HouseHoldViewModel vm = new HouseHoldViewModel();


            if (code != null && ValideInvite())
            {
                Invite result = db.Invites.FirstOrDefault(i => i.Token == code);
                vm.isJoinHouseHold = true;
                vm.HHId            = result.HouseHoldId;
                vm.HHName          = result.HouseHold.Name;

                result.hasbeenUsed = true;

                ApplicationUser user = db.Users.Find(User.Identity.GetUserId());
                user.InviteEmail = result.Email;
                db.SaveChanges();
            }


            return(View(vm));
        }
        public ActionResult Index()
        {
            var roommateData         = LoadRoommates();
            var billData             = LoadBills();
            HouseHoldViewModel house = new HouseHoldViewModel();

            foreach (var item in roommateData)
            {
                house.Roommates.Add(new RoommateModel
                {
                    RoommateId     = item.RoommateId,
                    FirstName      = item.FirstName,
                    LastName       = item.LastName,
                    MonthlyPayment = item.MonthlyPayment
                });
            }

            foreach (var item in billData)
            {
                house.Bills.Add(new BillModel
                {
                    BillName  = item.BillName,
                    Amount    = item.AmountDue,
                    DueDate   = item.DueDate,
                    IsCurrent = item.IsCurrent
                });
            }
            return(View(house));
        }
        public ActionResult CategoryTransactions()
        {
            var user = db.Users.Find(User.Identity.GetUserId());
            HouseHoldViewModel hvm = new HouseHoldViewModel
            {
                Category      = db.Categories.Where(u => u.HouseHoldId == user.HouseHoldId).ToList(),
                Transaction   = db.Transactions.ToList(),
                BudgetHistory = db.BudgetHistories.Where(u => u.HouseHoldId == user.HouseHoldId).ToList()
            };

            return(View(hvm));
        }
        public IHttpActionResult ViewMembers(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var houseHold = _db.Households
                            .Include(p => p.Members)
                            .Include(p => p.Creator)
                            .FirstOrDefault(p => p.Id == id);

            if (houseHold == null)
            {
                return(NotFound());
            }

            var userId = User.Identity.GetUserId();

            if (houseHold.CreatorId != userId && !houseHold.Members.Any(p => p.Id == userId))
            {
                return(NotFound());
            }

            var houseHoldViewModel = new HouseHoldViewModel();

            houseHoldViewModel.Name = houseHold.Name;

            houseHoldViewModel.Members.Add(new HouseHoldMembersViewModel
            {
                Name      = houseHold.Creator.UserName,
                Email     = houseHold.Creator.Email,
                Id        = houseHold.Creator.Id,
                IsCreator = true
            });

            foreach (var member in houseHold.Members)
            {
                houseHoldViewModel.Members.Add(new HouseHoldMembersViewModel
                {
                    IsCreator = false,
                    Email     = member.Email,
                    Id        = member.Id,
                    Name      = member.UserName
                });
            }

            return(Ok(houseHoldViewModel));
        }
Esempio n. 5
0
        // GET: HouseHolds
        public ActionResult Index()
        {
            var user   = db.Users.Find(User.Identity.GetUserId());
            var budget = db.Budgets.Where(u => u.HouseHoldId == user.HouseHoldId).ToList();

            ViewBag.BudgetId = new SelectList(budget, "Id", "Name");
            HouseHoldViewModel hvm = new HouseHoldViewModel()
            {
                HouseHold     = db.HouseHolds.Where(u => u.Id == user.HouseHoldId).ToList(),
                Invitation    = db.Invitations.Where(u => u.Accepted == false && u.HouseHoldId == user.HouseHoldId).ToList(),
                Category      = db.Categories.Where(u => u.HouseHoldId == user.HouseHoldId).ToList(),
                BudgetHistory = db.BudgetHistories.Where(u => u.HouseHoldId == user.HouseHoldId).ToList()
            };

            return(View(hvm));
        }
Esempio n. 6
0
        public async Task <ActionResult> JoinHouseHold(HouseHoldViewModel model, Guid?code)
        {
            HouseHold hh   = db.HouseHolds.Find(model.HHId);
            var       user = db.Users.Find(User.Identity.GetUserId());

            //model.Member = db.Users.Find(User.Identity.GetUserId());

            hh.Users.Add(user);

            db.SaveChanges();


            await ControllerContext.HttpContext.RefreshAuthentication(user);

            return(RedirectToAction("Index", "HouseHolds"));
        }
Esempio n. 7
0
        public async Task <ActionResult> CreateHouseHold(HouseHoldViewModel model)
        {
            HouseHold hh = new HouseHold();

            hh.Name = model.HHName;
            db.HouseHolds.Add(hh);
            db.SaveChanges();

            var user = db.Users.Find(User.Identity.GetUserId());

            hh.Users.Add(user);
            db.SaveChanges();

            await ControllerContext.HttpContext.RefreshAuthentication(user);

            return(RedirectToAction("Index", "HouseHolds"));
        }
Esempio n. 8
0
        public ActionResult AddPayment(HouseHoldViewModel model)
        {
            if (ModelState.IsValid)
            {
                PaymentProcessor.CreatePayment(
                    //!Bill is checked in this function
                    model.Payment.BillId,
                    model.Payment.RoommateId,
                    model.Payment.AmountPaid);

                //TODO SQL bug where amount due is being devided up per assigned each time


                return(RedirectToAction("Index"));
            }

            return(View());
        }
Esempio n. 9
0
        public ActionResult AddPayment(int?roommateId, int?billId, decimal?amountOwed)
        {
            HouseHoldViewModel model = new HouseHoldViewModel();

            if (roommateId != null && billId != null)
            {
                ViewBag.selectedRoommate = RoommateProcessor.GetRoommateById((int)roommateId).FullName;
                ViewBag.selectedBill     = BillProcessor.GetBillById((int)billId).BillName;
                ViewBag.AmountOwed       = amountOwed?.ToString("C", CultureInfo.CurrentCulture);
                model.Payment.BillId     = (int)billId;
                model.Payment.RoommateId = RoommateProcessor.GetRoommateById((int)roommateId).RoommateId;
            }
            else
            {
                var billData = BillProcessor.LoadBills();
                //var billData = PaymentProcessor.GetUnpaidBills();
                var roommateData = RoommateProcessor.LoadRoommates();
                foreach (var item in billData)
                {
                    model.Bills.Add(new Models.BillModel
                    {
                        //ID = item.BillId,
                        ID       = item.ID,
                        BillName = item.BillName,
                        Amount   = item.AmountDue,
                        DueDate  = item.DueDate
                    });
                }
                foreach (var item in roommateData)
                {
                    model.Roommates.Add(new Models.RoommateModel
                    {
                        RoommateId     = item.RoommateId,
                        FirstName      = item.FirstName,
                        LastName       = item.LastName,
                        MonthlyPayment = item.MonthlyPayment
                    });
                }
            }


            return(View(model));
        }