public async Task <ActionResult> RegisterInvitee(RegisterInviteeViewModel model, string originalEmail, HttpPostedFileBase avatarPath) { if (ModelState.IsValid) { if (originalEmail.Trim().ToLower() != model.Email.Trim().ToLower()) { ModelState.AddModelError("Email", "Please use the Email you were invited with."); model.Email = originalEmail; return(View(model)); } var avatarsDir = "Avatars"; if (!String.IsNullOrWhiteSpace(WebConfigurationManager.AppSettings["AvatarsDirectoryName"])) { avatarsDir = WebConfigurationManager.AppSettings["AvatarsDirectoryName"].Trim(); } var displayName = String.IsNullOrWhiteSpace(model.DisplayName) ? $"{model.FirstName} {model.LastName}" : model.DisplayName; var user = new ApplicationUser { FirstName = model.FirstName, LastName = model.LastName, DisplayName = displayName, UserName = model.Email, Email = model.Email, AvatarPath = $"/{avatarsDir}/default_user.png", HouseholdId = model.HouseholdId }; if (avatarPath != null && HelperMethods.IsWebFriendlyImage(avatarPath)) { var fileName = avatarPath.FileName.GenerateSlug(); var massagedFileName = fileName.ApplyDateTimeStamp(); var dirPath = Server.MapPath($"~/{avatarsDir}/"); if (HelperMethods.EnsureDirectoryExists(dirPath)) { var filePath = Path.Combine(dirPath, massagedFileName); avatarPath.SaveAs(filePath); user.AvatarPath = $"/{avatarsDir}/{massagedFileName}"; } } var result = await UserManager.CreateAsync(user); if (result.Succeeded) { int hId = model.HouseholdId.GetValueOrDefault(); HelperMethods.AddUserToHousehold(model.Email, hId); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Dashboard", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult LoginInvitee(string code) { if (String.IsNullOrWhiteSpace(code) || code.Length > 291 || !HelperMethods.InvitationRegistrationIsValid(code, out var email, out int?householdId)) { return(RedirectToAction("Login", "Account")); } int hId = householdId.GetValueOrDefault(); if (hId == 0) { return(RedirectToAction("Login", "Account")); } HelperMethods.AddUserToHousehold(email, hId); return(RedirectToAction("Login", "Account")); }