Пример #1
0
        public async Task <IActionResult> Register([FromBody] RegisterVm model)
        {
            if (ModelState.IsValid)
            {
                var userProfile = new UserProfile();
                model.ToEntity(userProfile);
                var result = await _userManager.CreateAsync(userProfile, model.Password);

                if (result.Succeeded)
                {
                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                    // Send an email with this link
                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
                    //await _emailSender.SendEmailAsync(model.Email, "Confirm your account",
                    //    "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
                    await _signInManager.SignInAsync(userProfile, isPersistent : false);

                    return(Content("ok"));
                }
                else
                {
                    Response.StatusCode = 422;
                    return(Json(new Dictionary <string, string[]>()
                    {
                        {
                            string.Empty, result.Errors.Select(e => e.Description).ToArray()
                        }
                    }));
                }
            }
            Response.StatusCode = 422;
            return(Json(ModelState.ToErrorsDictionary()));
        }
        public async Task <IActionResult> Register(RegisterVm register)
        {
            if (ModelState.IsValid)
            {
                var user = new User()
                {
                    FirstName   = register.FirstName,
                    LastName    = register.LastName,
                    Email       = register.Email,
                    PhoneNumber = register.Phone,
                    UserName    = register.Email,
                    OfficeNo    = register.OfficeId,
                };

                var result = await userManager.CreateAsync(user, register.Password);

                if (result.Succeeded)
                {
                    await signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Index", "Product"));
                }

                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }
            return(View(register));
        }
Пример #3
0
        public Task <ApiResult <string> > Register(RegisterVm registerVm)
        {
            var apiResult = new ApiResult <string>
            {
                Code = Code.OK
            };

            registerVm.UserName = registerVm.UserName.Trim();
            registerVm.PassWord = registerVm.PassWord.Trim();
            if (_userService.ExistUserName(registerVm.UserName))
            {
                apiResult.Code    = Code.BAD_REQUEST;
                apiResult.Message = "用户名称存在";
                return(Task.FromResult(apiResult));
            }
            if (_userService.ExistEmail(registerVm.Email))
            {
                apiResult.Code    = Code.BAD_REQUEST;
                apiResult.Message = "用户邮箱存在";
                return(Task.FromResult(apiResult));
            }
            if (_userService.ExistMobilePhone(registerVm.MobilePhone))
            {
                apiResult.Code    = Code.BAD_REQUEST;
                apiResult.Message = "用户手机号码存在";
                return(Task.FromResult(apiResult));
            }
            apiResult.Message = "注册成功";
            _userService.Insert(registerVm);
            return(Task.FromResult(apiResult));
        }
Пример #4
0
        public ActionResult Register(RegisterVm vm)
        {
            if (ModelState.IsValid)
            {
                //Check if nick name is also unic. (Along with email)
                if (!IsNickNameUnic(vm.NickName))
                {
                    ModelState.AddModelError("", "Такой логин уже зарегестрирован.");
                }
                AppUser user = new AppUser {
                    UserName = vm.Email, Email = vm.Email, UserNickName = vm.NickName
                };
                IdentityResult result = UserManager.Create(user, vm.Password);
                if (result.Succeeded)
                {
                    //Immediate sign in
                    SignIn(user);
                    return(RedirectToAction("Index", "Home"));
                }

                foreach (string error in result.Errors)
                {
                    //Russian translation. Defaul is english
                    if (error.Contains("is already taken"))
                    {
                        ModelState.AddModelError("", "Такой email уже зарегестрирован.");
                    }
                    else
                    {
                        ModelState.AddModelError("", error);
                    }
                }
            }
            return(View(vm));
        }
Пример #5
0
        public async Task RegisterStudent_returns_ViewResultWithModel()
        {
            var model = new RegisterVm
            {
                StudentCardNr = "studentcrnr",
                Password      = "******"
            };

            _messages.Setup(x => x.Dispatch(It.IsAny <GetInviteByTokenQuery>()))
            .Returns(new Invite(123, "token", false, "*****@*****.**"));

            _messages.Setup(x => x.Dispatch(It.IsAny <GetStudentQuery>()))
            .Returns(new Student {
                StudentCardNumber = "studentcrnr"
            });

            _userManager.Setup(x => x.CreateAsync(It.IsAny <ApplicationUser>(), "Password123"))
            .Returns(Task.FromResult(new IdentityResult()));

            // Act
            var actionResult = await _sut.RegisterStudent(model);

            var view        = (ViewResult)actionResult;
            var resultModel = (RegisterVm)view.Model;

            // Assert
            Assert.That(resultModel, Is.TypeOf <RegisterVm>());
        }
Пример #6
0
        public async Task <IActionResult> Create(RegisterVm register)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            AppUser newUser = new AppUser
            {
                Fullname = register.Fullname,
                Email    = register.Email,
                UserName = register.Username
            };

            IdentityResult identityResult = await _userManager.CreateAsync(newUser, register.Password);

            if (!identityResult.Succeeded)
            {
                foreach (var error in identityResult.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                return(View(register));
            }
            newUser.EmailConfirmed = true;
            newUser.IsActivated    = true;

            await _userManager.AddToRoleAsync(newUser, "Member");

            TempData["success"] = "User Created";

            return(RedirectToAction("Index", "Users"));
        }
Пример #7
0
        public ActionResult Save(RegisterVm registerVm)
        {
            if (registerVm.data != null)
            {
                if (registerVm.register.id == 0)
                {
                    registerVm.register.id = (registerVm.data.OrderByDescending(x => x.id).FirstOrDefault().id) + 1;
                    registerVm.data.Add(registerVm.register);
                }
                else
                {
                    var obj = registerVm.data.Where(x => x.id == registerVm.register.id).FirstOrDefault();
                    obj.name  = registerVm.register.name;
                    obj.email = registerVm.register.email;
                    obj.phone = registerVm.register.phone;
                }
            }
            else
            {
                registerVm.register.id = 1;
                registerVm.data        = new List <register>();
                registerVm.data.Add(registerVm.register);
            }

            ModelState.Clear();
            return(View("Index", new RegisterVm
            {
                data = registerVm.data,
                register = null
            }));
        }
Пример #8
0
 public ActionResult New(RegisterVm registerVm)
 {
     ModelState.Clear();
     registerVm.register      = null;
     registerVm.selectedIndex = 0;
     return(View("Index", registerVm));
 }
        public IActionResult Register(RegisterVm model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = _mapper.Map <User>(model);

            try
            {
                if (_userService.Register(user))
                {
                    _mailSender.SendWelcomeMail(model.Email);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    model.IsInvalid    = true;
                    model.ErrorMessage = "Email already registered";
                    return(View(model));
                }
            }
            catch (System.Net.Mail.SmtpException)
            {
                return(ForbiddenView());
            }
        }
Пример #10
0
        public async Task <IActionResult> Register([FromBody] RegisterVm reg)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { Error = "Invalid data was submitted", Message = ModelState.Values.First(x => x.Errors.Count > 0).Errors.Select(t => t.ErrorMessage).First() }));
            }
            AppUsers user   = reg.Transform();
            var      result = await _userManager.CreateAsync(user, user.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(new { Message = result.Errors.First().Description }));
            }
            await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Name, user.UserName));

            await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "User"));

            if (await _userManager.Users.CountAsync() < 3)
            {
                await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "Researcher"));
            }
            else
            {
                await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "Assistant"));
            }
            var _user = await _userManager.FindByIdAsync(user.Id);

            await _signInManager.SignInAsync(_user, true);

            await db.SaveChangesAsync();

            return(Created("", user));
        }
Пример #11
0
        public async Task <ActionResult> Register(RegisterVm register)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser
                {
                    UserName       = register.UserName,
                    Email          = register.Email,
                    EmailConfirmed = true
                };
                var result = await _userManager.CreateAsync(user, register.Password);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("Index", "Home"));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View(register));
        }
        public async Task <IActionResult> ResendRegistrationEmail(RegisterVm model)
        {
            Logger.LogInformation($"Resend Registration email callback url: {model.CallbackUrl}");

            await _registerService.ResendActivationLink(model.EmailAddress);

            return(View("SendRegistrationEmail", model));
        }
Пример #13
0
 // GET: Register
 public ActionResult Index(RegisterVm registerVm = null)
 {
     if (registerVm != null)
     {
         return(View(registerVm));
     }
     return(View(new RegisterVm()));
 }
Пример #14
0
        public async Task <ViewResult> Register(RegisterVm vm)
        {
            if (vm.Email != vm.RepeatEmail)
            {
                ViewBag.ErrorMessage = "Emails must be the matching";
                return(View());
            }
            if (vm.Password != vm.RepeatPassword)
            {
                ViewBag.ErrorMessage = "Password must be the matching";
                return(View());
            }
            if (_userManager.Users.Any(u => u.UserName == vm.Login))
            {
                ViewBag.ErrorMessage = "Given login is already in use";
                return(View());
            }

            var user = new AppUser
            {
                FirstName      = vm.FirstName,
                LastName       = vm.LastName,
                UserName       = vm.Login,
                Email          = vm.Email,
                EmailConfirmed = true
            };

            var passwordHasher = _userManager.PasswordHasher;

            user.PasswordHash = passwordHasher.HashPassword(user, vm.Password);

            var result = await _userManager.CreateAsync(user);

            if (!result.Succeeded)
            {
                ViewBag.ErrorMessage = "Cannot create user with given credentials";
                return(View());
            }
            result = await _userManager.AddToRoleAsync(user, AppRoles.Student);

            if (!result.Succeeded)
            {
                ViewBag.ErrorMessage = "Cannot create user with given credentials";
                return(View());
            }

            var student = new Student
            {
                AppUser = user
            };

            _dbContext.Students.Add(student);
            _dbContext.SaveChanges();

            ViewBag.Message = "Registration was succesfull";
            return(View(nameof(Login)));
        }
Пример #15
0
        private async Task <bool> UserExists(RegisterVm registerModel)
        {
            var result = await _userManager.Users.FirstOrDefaultAsync(p => p.Email == registerModel.Email || p.PhoneNumber == registerModel.PhoneNumber);

            if (result != null)
            {
                return(true);
            }
            return(false);
        }
Пример #16
0
        public async Task <ApiResult> Register(RegisterVm model)
        {
            var user = _mapper.Map <UserDto>(model);

            user.Role = Roles.Admin;

            await _userService.CreateUserAsync(user);

            return(ApiResult.Ok);
        }
Пример #17
0
        public async Task <IActionResult> RegisterStudent(string token)
        {
            await _signInManager.SignOutAsync();

            var model = new RegisterVm
            {
                Token = token
            };

            return(View(model));
        }
        public async Task <IActionResult> CompleteRegistration(RegisterVm model, string returnUrl = "/MyAccounts")
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, null, "Invalid registration details");
                    return(View(model));
                }

                var result = await _registerService.CreateAccount(new RegisterAccount
                {
                    Password              = model.Password,
                    EmailAddress          = model.EmailAddress,
                    ExpiresAt             = null,
                    LowellReferenceNumber = model.LowellReference
                });

                if (result.IsSuccess)
                {
                    _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, result.SubjectId.ToString(), null);
                    await _webActivityService.LogRegistrationRequest(model.LowellReference, string.Empty);

                    return(View("SendRegistrationEmail", model));
                }
                else
                {
                    Logger.LogError($"Complete Registration Error: {JsonConvert.SerializeObject(result)}");

                    if (result.ErrorCode == 1000)
                    {
                        AddErrors(ValidationMessages.UserNameAlreadyExists);
                        model.NotificationMessage = ValidationMessages.UserNameAlreadyExists;
                        _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, null, "Username already exists");
                    }
                    else
                    {
                        AddErrors(ValidationMessages.ConfirmRegistrationFailed);
                        model.NotificationMessage = ValidationMessages.ConfirmRegistrationFailed;
                        _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model, null, "service unavailable");
                    }

                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, $"Complete Registration Error: {ex.Message}");

                _gtmService.RaiseRegistrationEvent_ActivationEmailSent(model,
                                                                       string.IsNullOrEmpty(LoggedInUserId) ? null : LoggedInUserId, $"Unhandled exception: {ex.Message}");
                return(View("Error"));
            }
        }
Пример #19
0
        public async Task RegisterStudent_returns_jsonResult_When_Invite_Is_Null()
        {
            var model = new RegisterVm();

            // Act
            var actionResult = await _sut.RegisterStudent(model);

            var result = (JsonResult)actionResult;

            // Assert
            Assert.That(result.Value, Is.EqualTo("Midagi läks valesti, võta ühendust kooli administraatoriga või proovi uuesti"));
        }
Пример #20
0
        public IHttpActionResult Register([FromBody] RegisterVm register)
        {
            try
            {
                var user = new User
                {
                    FirstName = register.FirstName,
                    LastName  = register.LastName,
                    Cpf       = register.Cpf,
                    Contacts  = new List <Contact>()
                };

                if (!string.IsNullOrWhiteSpace(register.Email))
                {
                    user.Contacts.Add(new Contact
                    {
                        ContactType = ContactType.Email,
                        Description = register.Email,
                        UserId      = user.UserId
                    });
                }

                if (!string.IsNullOrWhiteSpace(register.Telephone))
                {
                    user.Contacts.Add(new Contact
                    {
                        ContactType = ContactType.Telephone,
                        Description = register.Telephone,
                        UserId      = user.UserId
                    });
                }

                if (!string.IsNullOrWhiteSpace(register.CellPhone))
                {
                    user.Contacts.Add(new Contact
                    {
                        ContactType = ContactType.Cellphone,
                        Description = register.CellPhone,
                        UserId      = user.UserId
                    });
                }

                user.SetNewPassword(user.Password);
                _db.Users.Add(user);
                _db.SaveChanges();
                return(Ok(user));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(BadRequest(ex.Message));
            }
        }
Пример #21
0
        public async Task <Tuple <bool, string> > Register(RegisterVm registerVm)
        {
            try
            {
                var checkIfUserExist = await UserExists(registerVm);

                if (checkIfUserExist)
                {
                    return(new Tuple <bool, string>(false, "Phone number or email has been taken"));
                }

                email    = registerVm.Email;
                fullName = registerVm.Surname + " " + registerVm.OtherNames;
                User userToRegister = new User
                {
                    Surname            = registerVm.Surname,
                    OtherNames         = registerVm.OtherNames,
                    Email              = registerVm.Email,
                    PhoneNumber        = registerVm.PhoneNumber,
                    Gender             = registerVm.Sex,
                    DateOfBirth        = registerVm.DateOfBirth,
                    UserName           = registerVm.Email,
                    ResidentialAddress = registerVm.Address,
                    ImagePath          = registerVm.ImagePath,
                    Organisation       = registerVm.Organisation,
                    Society            = registerVm.Society,
                    BCC                  = registerVm.BCC,
                    StateOfOrigin        = registerVm.State,
                    NatureOfWork         = registerVm.NatureOfWork,
                    Occupation           = registerVm.Occupation,
                    WorshipCenter        = registerVm.WorshipCenter,
                    Suggestion           = registerVm.Suggestion,
                    MaritalStatus        = registerVm.MaritalStatus,
                    MembershipCardNumber = registerVm.MCardNumber,
                };

                var result = await _userManager.CreateAsync(userToRegister, registerVm.Password);

                if (!result.Succeeded)
                {
                    return(new Tuple <bool, string>(false, result.Errors.FirstOrDefault().Description));
                }

                //SendMail();

                return(new Tuple <bool, string>(true, userToRegister.Surname + " " + userToRegister.OtherNames));
            }
            catch (Exception ex)
            {
                return(new Tuple <bool, string>(false, "Oops! An error occured"));
            }
        }
Пример #22
0
        public ActionResult Edit(RegisterVm registerVm)
        {
            var register = registerVm.data.Where(x => x.id == registerVm.selectedIndex).FirstOrDefault();

            var _registerVm = new RegisterVm
            {
                data     = registerVm.data,
                register = register
            };

            ModelState.Clear();
            return(View("Index", _registerVm));
        }
Пример #23
0
        public void TestMethod1()
        {
            // Arrange
            AccountController controller = new AccountController();

            // Act
            RegisterVm reg    = new RegisterVm();
            ViewResult result = controller.Register(reg) as ViewResult;

            // Assert
            //Assert.AreEqual(, result.ViewBag.Message);
            Assert.IsTrue(true);
        }
Пример #24
0
        public ActionResult Edit(int SelectedIndex)
        {
            var data     = (List <register>)Session["Ssn:Data"];
            var register = data.Where(x => x.id == SelectedIndex).FirstOrDefault();

            var registerVm = new RegisterVm
            {
                data     = data,
                register = register
            };

            return(View("Index", registerVm));
        }
Пример #25
0
        public async Task <ApiResult> ConfirmEmail(RegisterVm model)
        {
            var user = await _userService.ConfirmUserEmailAsync(model.UserName, model.VerificationCode);

            user.Password = model.Password;
            var claim = await _userService.AuthenticateUserAsync(user);

            AuthenticationManager.SignIn(new AuthenticationProperties {
                IsPersistent = true
            }, claim);

            return(_mapper.Map <UserVm>(user).AsApiResult());
        }
Пример #26
0
        public ActionResult Delete(RegisterVm registerVm)
        {
            var obj = registerVm.data.Where(x => x.id == registerVm.selectedIndex).FirstOrDefault();

            registerVm.data.Remove(obj);
            var _registerVm = new RegisterVm
            {
                data     = registerVm.data,
                register = null
            };

            ModelState.Clear();
            return(View("Index", _registerVm));
        }
        public void RegisterVmValidator_IncorrectPassword_ReturnsErrors(string password, int errorCount)
        {
            var model = new RegisterVm()
            {
                EmailAddress    = "*****@*****.**",
                Password        = password,
                ConfirmPassword = password,
                TsAndCsAccepted = true
            };

            ValidationResult result = _validator.Validate(model);

            Assert.AreEqual(false, result.IsValid);
        }
Пример #28
0
        public IActionResult Register()
        {
            if (currentUser.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Announcement"));
            }
            var model = new RegisterVm
            {
                //Counties = GetCounties(),
                DateOfBirth = DateTime.Now
            };

            return(View(model));
        }
        public void RegisterVmValidator_EmailAddress_MatchesIncorrectEmailAddress_ReturnsErrors(string email, int errorCount)
        {
            var model = new RegisterVm()
            {
                EmailAddress    = email,
                Password        = "******",
                ConfirmPassword = "******",
                TsAndCsAccepted = true,
            };

            ValidationResult result = _validator.Validate(model);

            Assert.AreEqual(false, result.IsValid);
        }
        public void RegisterVmValidator_CorrectPassword(string password)
        {
            var model = new RegisterVm()
            {
                EmailAddress    = "*****@*****.**",
                Password        = password,
                ConfirmPassword = password,
                TsAndCsAccepted = true
            };

            ValidationResult result = _validator.Validate(model);

            Assert.AreEqual(true, result.IsValid);
        }