private async void addNewPreApprovedUserAsync() { var preAprovedUser = new PreApprovedUser { EmailAddress = Email, SenderId = SenderID }; await _userContext.PreApprovedUsers.AddAsync(preAprovedUser); await _userContext.SaveChangesAsync(); }
public async Task <IActionResult> OnPostAsync() { var user = await _userManager.GetUserAsync(HttpContext.User); if (user == null) { return(RedirectToPage("/Account/Logout", new { area = "Identity" })); } bool isAlreadyRegistered = _userContext.Users.Any(x => x.Email == Input.Email); if (isAlreadyRegistered) { ModelState.AddModelError("Input.Email", "This email is already registered"); PreApprovedUserList(user); return(Page()); } if (!ModelState.IsValid) { PreApprovedUserList(user); return(Page()); } var callbackUrl = Url.Page( "/Account/PreRegister", pageHandler: null, values: new { area = "Identity" }, protocol: "https"); var content = new Dictionary <string, dynamic> { { "userId", user.Email }, { "senderId", user.SenderId } }; _emailSender.SendEmail(Input.Email, "Invite a Colleague", callbackUrl, content); var preAprovedUser = new PreApprovedUser { EmailAddress = Input.Email, SenderId = user.SenderId }; await _userContext.PreApprovedUsers.AddAsync(preAprovedUser); await _userContext.SaveChangesAsync(); TempData["inviteduser"] = Input.Email.ToString(); return(RedirectToPage("./ConfirmInviteColleague")); }
public void OnPostAsync_WhenUserIsNotinPreApprovedUserList_ShowInvitationErroMsg() { var preApprovedUser = new PreApprovedUser { EmailAddress = "*****@*****.**", SenderId = "Test1234" }; _usercontext.PreApprovedUsers.Add(preApprovedUser); var portFreightUser = new PortFreightUser { Email = "*****@*****.**", SenderId = "Test1234", EmailConfirmed = true }; _usercontext.Users.Add(portFreightUser); _usercontext.SaveChangesAsync(); var org = new OrgList { OrgId = "TST001", SubmitsMsd1 = false, SubmitsMsd2 = true }; _portfreightContext.OrgList.Add(org); _portfreightContext.SaveChangesAsync(); pageModel.Input = new PreRegisterModel.InputModel { Email = "*****@*****.**", SenderId = "Test1234" }; var result = (PageResult)pageModel.OnPost(); Assert.IsNotNull(result); Assert.IsFalse(viewData.ModelState.IsValid); Assert.AreEqual(1, viewData.ModelState.Count); Assert.IsTrue(viewData.ModelState.ContainsKey("Input.SenderId")); Assert.IsTrue(viewData.ModelState.ErrorCount == 1); Assert.AreEqual("This Sender ID has already been registered. Ask your colleague to send you an invitation or contact helpdesk", viewData.ModelState["Input.SenderId"].Errors[0].ErrorMessage); Assert.IsInstanceOfType(result, typeof(PageResult)); }
public void OnPostAsync_WhenUserIsValidPreApprovedUser_RedirectToCreatePasswordPage() { var preApprovedUser = new PreApprovedUser { EmailAddress = "*****@*****.**", SenderId = "Test1234" }; _usercontext.PreApprovedUsers.Add(preApprovedUser); _usercontext.SaveChangesAsync(); pageModel.Input = new PreRegisterModel.InputModel { Email = "*****@*****.**", SenderId = "Test1234" }; var result = (RedirectToPageResult)pageModel.OnPost(); Assert.IsNotNull(result); Assert.AreEqual("Register", result.PageName); Assert.IsInstanceOfType(result, typeof(RedirectToPageResult)); }
public void OnPostAsync_WhenIncorrectEmailRegistered_AllowNewUser() { var preApprovedUser = new PreApprovedUser { EmailAddress = "*****@*****.**", SenderId = "TST001" }; _usercontext.PreApprovedUsers.Add(preApprovedUser); var portFreightUser = new PortFreightUser { Email = "*****@*****.**", SenderId = "TST001", EmailConfirmed = false }; _usercontext.Users.Add(portFreightUser); _usercontext.SaveChangesAsync(); var org = new OrgList { OrgId = "TST001", SubmitsMsd1 = false, SubmitsMsd2 = true }; _portfreightContext.OrgList.Add(org); _portfreightContext.SaveChangesAsync(); pageModel.Input = new PreRegisterModel.InputModel { Email = "*****@*****.**", SenderId = "TST001" }; var result = (RedirectToPageResult)pageModel.OnPost(); Assert.IsNotNull(result); Assert.AreEqual("Register", result.PageName); Assert.IsInstanceOfType(result, typeof(RedirectToPageResult)); }
public IActionResult OnPost() { if (ModelState.IsValid) { var user = new PreApprovedUser { EmailAddress = Input.Email, SenderId = Input.SenderId }; if (EmailIdRegistered(user)) { ModelState.AddModelError("EmailAlreadyRegistered", "This email is already registered"); return(Page()); } var isUserPreApproved = _usercontext.PreApprovedUsers.Any(x => x.EmailAddress == user.EmailAddress); if (isUserPreApproved) { if (DeatailsMatchPreApprovedList(user)) { var preApprovedUser = new PortFreightUser { UserName = Input.Email.ToLower(), Email = Input.Email.ToLower(), SenderId = Input.SenderId.ToUpper() }; TempData.Put("PreApprovedUser", preApprovedUser); return(RedirectToPage("Register")); } ModelState.AddModelError("CheckDetailsEntered", "Please check the details entered match those in your invitation email"); return(Page()); } ModelState.AddModelError("CheckDetailsEntered", "We are unable to validate your details, please contact helpdesk"); return(Page()); } return(Page()); }
public void OnPostAsync_WhenEmailDoesnotExistInPreApprovedUserList_ShowErroMsg() { var preApprovedUser = new PreApprovedUser { EmailAddress = "*****@*****.**", SenderId = "Test1234" }; _usercontext.PreApprovedUsers.Add(preApprovedUser); _usercontext.SaveChangesAsync(); pageModel.Input = new PreRegisterModel.InputModel { Email = "*****@*****.**", SenderId = "Test1234" }; var result = (PageResult)pageModel.OnPost(); Assert.IsNotNull(result); Assert.IsFalse(viewData.ModelState.IsValid); Assert.AreEqual(1, viewData.ModelState.Count); Assert.IsTrue(viewData.ModelState.ContainsKey("CheckDetailsEntered")); Assert.IsTrue(viewData.ModelState.ErrorCount == 1); Assert.AreEqual("We are unable to validate your details, please contact helpdesk", viewData.ModelState["CheckDetailsEntered"].Errors[0].ErrorMessage); Assert.IsInstanceOfType(result, typeof(PageResult)); }
public void OnPostAsync_WhenEmailExistButNotSenderIDInPreApprovedUserList_ShowErroMsg() { var preApprovedUser = new PreApprovedUser { EmailAddress = "*****@*****.**", SenderId = "Test1234" }; _usercontext.PreApprovedUsers.Add(preApprovedUser); _usercontext.SaveChangesAsync(); pageModel.Input = new PreRegisterModel.InputModel { Email = "*****@*****.**", SenderId = "XX1234" }; var result = (PageResult)pageModel.OnPost(); Assert.IsNotNull(result); Assert.IsFalse(viewData.ModelState.IsValid); Assert.AreEqual(1, viewData.ModelState.Count); Assert.IsTrue(viewData.ModelState.ContainsKey("CheckDetailsEntered")); Assert.IsTrue(viewData.ModelState.ErrorCount == 1); Assert.AreEqual("Please check the details entered match those in your invitation email", viewData.ModelState["CheckDetailsEntered"].Errors[0].ErrorMessage); Assert.IsInstanceOfType(result, typeof(PageResult)); }
private bool EmailIdRegistered(PreApprovedUser user) { return(_usercontext.Users.Any(x => x.Email == user.EmailAddress)); }
private bool DeatailsMatchPreApprovedList(PreApprovedUser user) { return(_usercontext.PreApprovedUsers.Any(s => s.EmailAddress == user.EmailAddress && s.SenderId == user.SenderId)); }