public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.Controller.TempData.Remove("oopsMsg"); if (userId == null) { filterContext.Controller.TempData.Add("oopsMsg", "You have to be logged in and authorized to continue."); filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "Oops" } }); } var transactionId = Convert.ToInt32(filterContext.ActionParameters.SingleOrDefault(p => p.Key == "id").Value); var transaction = db.Transactions.AsNoTracking().Where(t => t.Id == transactionId).FirstOrDefault(); var transactionUserId = transaction.EnteredById; int?userHouseholdId = db.Users.Find(userId).HouseholdId; if (HouseholdHelper.GetUserHouseholdId(transactionUserId) != userHouseholdId) { filterContext.Controller.TempData.Add("oopsMsg", "You have to be logged in and authorized to view this Household."); filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "Oops" } }); } base.OnActionExecuting(filterContext); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Transaction transaction = db.Transactions.Find(id); if (transaction == null) { return(HttpNotFound()); } var userHousholdId = HouseholdHelper.GetUserHouseholdId(User.Identity.GetUserId()); var enteredById = db.Users.Where(u => u.HouseholdId == userHousholdId); var houseAccountId = db.HouseAccounts.Where(a => a.HouseholdId == userHousholdId); var budgetItems = db.BudgetItems.Where(i => db.Budgets.Any(b => b.Id == i.BudgetId && b.HouseholdId == userHousholdId)); ViewBag.EnteredById = new SelectList(enteredById, "Id", "FirstName", transaction.EnteredById); ViewBag.HouseAccountId = new SelectList(houseAccountId, "Id", "Name", transaction.HouseAccountId); ViewBag.TransactionTypeId = new SelectList(db.TransactionTypes, "Id", "Name", transaction.TransactionTypeId); ViewBag.BudgetItemId = new SelectList(budgetItems, "Id", "Name", transaction.BudgetItemId); return(View(transaction)); }
public async Task <ActionResult> Invitation(string Email) { try { var email = new MailAddress(Email).ToString(); foreach (var invite in db.Invitations.Where(i => i.EmailTo.ToLower() == email.ToLower())) { if (invite.Accepted) { TempData["status"] = "accepted"; return(RedirectToAction("Index", "Households", null)); } if (invite.Expires >= DateTime.Now) { TempData["status"] = "pending"; return(RedirectToAction("Index", "Households", null)); } } Invitation invitation = new Invitation { Created = DateTime.Now, Expires = DateTime.Now.AddDays(3), EmailTo = email, Subject = $"{User.Identity.FullName()} has invited you to join Budget Destoyer", Body = $"{User.Identity.FullName()} has invited you to join their house {HouseholdHelper.GetHouseholdName(User.Identity.GetUserId())} on Budget Destroyer", HouseholdId = Convert.ToInt32(HouseholdHelper.GetUserHouseholdId(User.Identity.GetUserId())), UniqueCode = Guid.NewGuid(), Accepted = false }; db.Invitations.Add(invitation); db.SaveChanges(); string code = invitation.UniqueCode.ToString(); var callbackUrl = Url.Action("RegisterInvitation", "Account", new { code = code }, protocol: Request.Url.Scheme); //var message = "<p>Email From: <bold>{0}</bold>({1})</p><p> Message:</p><p>{2}</p> "; var bodyButton = "<a href =\"" + callbackUrl + "\">here</a>"; var sentEmail = new MailMessage("*****@*****.**", email) { Subject = invitation.Subject, Body = $"{invitation.Body}. Please Join by clicking {bodyButton}", IsBodyHtml = true }; var svc = new PersonalEmail(); await svc.SendAsync(sentEmail); TempData["status"] = "success"; return(RedirectToAction("Index", "Households", null)); } catch (FormatException ex) { TempData["status"] = "error"; return(RedirectToAction("Index", "Households", null)); } }
public ActionResult Create([Bind(Include = "Id,HouseholdId,Name,Descriptions,Amount")] Budget budget) { if (ModelState.IsValid) { budget.HouseholdId = HouseholdHelper.GetUserHouseholdId(User.Identity.GetUserId()).Value; db.Budgets.Add(budget); db.SaveChanges(); return(RedirectToAction("Index", "Households")); } ViewBag.HouseholdId = new SelectList(db.Households, "Id", "Name", budget.HouseholdId); return(View(budget)); }
public ActionResult Create([Bind(Include = "Id,HouseholdId,Name,Balance,ReconciledBalace")] HouseAccount houseAccount) { if (ModelState.IsValid) { houseAccount.HouseholdId = HouseholdHelper.GetUserHouseholdId(User.Identity.GetUserId()).Value; houseAccount.ReconciledBalace = 0.00M; db.HouseAccounts.Add(houseAccount); db.SaveChanges(); return(RedirectToAction("Index", "Households")); } ViewBag.HouseholdId = new SelectList(db.Households, "Id", "Name", houseAccount.HouseholdId); return(View(houseAccount)); }
// GET: Households public ActionResult Index() { var householdId = HouseholdHelper.GetUserHouseholdId(User.Identity.GetUserId()); ViewBag.HouseAccounts = db.HouseAccounts.Where(h => h.HouseholdId == householdId).ToList(); ViewBag.Transactions = db.Transactions.Where(t => db.HouseAccounts.Any(h => h.Id == t.HouseAccountId && h.HouseholdId == householdId)).ToList(); ViewBag.HouseAccountsSelect = new SelectList(ViewBag.HouseAccounts, "Id", "Name"); ViewBag.TransactionTypes = new SelectList(db.TransactionTypes, "Id", "Name"); ViewBag.BudgetItems = db.BudgetItems.Where(i => db.Budgets.Any(b => b.Id == i.BudgetId && b.HouseholdId == householdId)).ToList(); ViewBag.BudgetItemSelect = new SelectList(ViewBag.BudgetItems, "Id", "Name"); ViewBag.Budgets = db.Budgets.Where(b => b.HouseholdId == householdId).ToList(); ViewBag.BudgetId = new SelectList(ViewBag.Budgets, "Id", "Name"); return(View(db.Households.Find(householdId))); }