Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
 private bool EmailIdRegistered(PreApprovedUser user)
 {
     return(_usercontext.Users.Any(x => x.Email == user.EmailAddress));
 }
Ejemplo n.º 10
0
 private bool DeatailsMatchPreApprovedList(PreApprovedUser user)
 {
     return(_usercontext.PreApprovedUsers.Any(s => s.EmailAddress == user.EmailAddress && s.SenderId == user.SenderId));
 }