public async Task <ActionResult> CreateAsync(string houseName, string greeting, string bankName, int accountType, decimal startingBalance, decimal warningBalance, string category, decimal target, string description, string categoryItem) { var newHouse = new Household { Name = houseName, Greeting = greeting }; db.Households.Add(newHouse); newHouse.Created = DateTime.Now; var user = db.Users.Find(User.Identity.GetUserId()); user.HouseholdId = newHouse.Id; db.SaveChanges(); // Assign this user the role of Owner roleHelper.AddUserToRole(user.Id, "Owner"); var newBank = new BankAccount { HouseholdId = newHouse.Id, OwnerId = User.Identity.GetUserId(), Created = DateTime.Now, Name = bankName, BankAccountTypeId = accountType, StartingBalance = startingBalance, CurrentBalance = startingBalance, LowBalanceLevel = warningBalance }; db.BankAccounts.Add(newBank); db.SaveChanges(); var newCategory = new Category { HouseholdId = newHouse.Id, Name = category, Description = description, TargetAmount = target }; db.Categories.Add(newCategory); db.SaveChanges(); var newItem = new CategoryItem { CategoryId = newCategory.Id, Description = description, Name = categoryItem }; db.CategoryItems.Add(newItem); db.SaveChanges(); // call the programmatic reauthorize extention method await HttpContextBaseExtension.RefreshAuthentication(HttpContext, user); return(RedirectToAction("Dashboard")); }
// Leave Household public async Task <ActionResult> LeaveAsync() { var userId = User.Identity.GetUserId(); var myRole = roleHelper.ListUserRoles(userId).FirstOrDefault(); var user = db.Users.Find(userId); switch (myRole) { case "Owner": var members = db.Users.Where(u => u.HouseholdId == user.HouseholdId).Count() - 1; if (members >= 1) { TempData["Message"] = $"You are unable to leave the Household! There are still <b>{members}</b> other members in the house, you must select one of them to assume your role."; return(RedirectToAction("ExitDenied")); } user.Household.IsDeleted = true; user.HouseholdId = null; db.Users.Remove(user); db.SaveChanges(); roleHelper.RemoveUserFromRole(userId, "Owner"); roleHelper.AddUserToRole(userId, "NewUser"); await HttpContextBaseExtension.RefreshAuthentication(HttpContext, user); return(RedirectToAction("Dashboard", "Households")); case "Member": default: // Removing all user's data from the database // This method doesn't allow for the user to maintain their data //db.Users.Remove(user); //db.SaveChanges(); roleHelper.RemoveUserFromRole(userId, "Member"); roleHelper.AddUserToRole(userId, "NewUser"); await HttpContextBaseExtension.RefreshAuthentication(HttpContext, user); return(RedirectToAction("Login", "Account")); } }
public async Task <ActionResult> Create([Bind(Include = "Id,HouseName,Greeting,Created")] Household household) { if (ModelState.IsValid) { household.Created = DateTime.Now; db.Households.Add(household); db.SaveChanges(); var user = db.Users.Find(User.Identity.GetUserId()); user.HouseholdId = household.Id; rolesHelper.AddUserToRole(user.Id, "Head"); db.SaveChanges(); await HttpContextBaseExtension.RefreshAuthentication(HttpContext, user); return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Dashboard")); }
public async Task <ActionResult> UpdateAvatar(HttpPostedFileBase Avatar) { var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); var justFileName = Path.GetFileNameWithoutExtension(Avatar.FileName); justFileName = StringUtilities.URLFriendly(justFileName); justFileName = $"{justFileName}-{DateTime.Now.Ticks}"; justFileName = $"{justFileName}{Path.GetExtension(Avatar.FileName)}"; var fileName = Path.GetFileName(Avatar.FileName); Avatar.SaveAs(Path.Combine(Server.MapPath("~/Avatars/"), justFileName)); user.AvatarPath = $"/Avatars/{justFileName}"; db.SaveChanges(); //AddErrors(result); await HttpContextBaseExtension.RefreshAuthentication(HttpContext, user); return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> Create(string houseName, string greeting, string bankName, int accountType, string startingBalance, string warningBalance, string categoryName, string itemName) { //var newHouse = new Household //{ // Created = DateTime.Now, //}; //if (ModelState.IsValid) //{ // db.Households.Add(household); // db.SaveChanges(); //} var newHouse = new Household { Created = DateTime.Now, Name = houseName, Greeting = greeting }; db.Households.Add(newHouse); db.SaveChanges(); //After creating a new House we need to do the following actions //Update the Users record to include the new household Id var user = db.Users.Find(User.Identity.GetUserId()); user.HouseholdId = newHouse.Id; //Assign this user to the role of owner roleHelper.AddUserToRole(user.Id, "Owner"); //Call the programmatic rauthorize extension method await HttpContextBaseExtension.RefreshAuthentication(HttpContext, user); var newBank = new BankAccount { HouseholdId = newHouse.Id, BankAccountTypeId = accountType, Created = DateTime.Now, StartingBalance = Convert.ToDecimal(startingBalance), CurrentBalance = Convert.ToDecimal(startingBalance), LowBalanceLevel = Convert.ToDecimal(warningBalance), Name = bankName, OwnerId = User.Identity.GetUserId() }; db.BankAccounts.Add(newBank); db.SaveChanges(); var newCategory = new Category { HouseholdId = newHouse.Id, Name = categoryName, Description = "Should have entered description in wizard", TargetAmount = 600 }; db.Categories.Add(newCategory); db.SaveChanges(); var newItem = new CategoryItem { CategoryId = newCategory.Id, Name = itemName, Description = "", }; db.CategoryItems.Add(newItem); db.SaveChanges(); //Redirect to Dashboard return(RedirectToAction("Dashboard")); }
public void GetRequestTelemetryReturnsNullForNullContextBase() { Assert.IsNull(HttpContextBaseExtension.GetRequestTelemetry(null)); }