public async Task <OperationDetails> Register(DTORegisterViewModel dtoRegisterViewModel) { ApplicationUser user = await Database.UserManager.FindByEmailAsync(dtoRegisterViewModel.Email); if (user == null) { user = new ApplicationUser { UserName = dtoRegisterViewModel.Email, Email = dtoRegisterViewModel.Email }; var password = new UserPasswordValidator(); var validatePassword = password.ValidateAsync(dtoRegisterViewModel.Password).Result; if (validatePassword.Errors.Count() > 0) { return(new OperationDetails(false, validatePassword.Errors.FirstOrDefault(), "")); } var result = await Database.UserManager.CreateAsync(user, dtoRegisterViewModel.Password); if (result.Errors.Count() > 0) { return(new OperationDetails(false, result.Errors.FirstOrDefault(), "")); } var code = await Database.UserManager.GenerateEmailConfirmationTokenAsync(user.Id); return(new OperationDetails(true, user.Id, code)); } else { return(new OperationDetails(false, "Пользователь с таким логином (Email) уже существует", "Email")); } }
// Register. private void RegisterButton_Click(object sender, EventArgs e) { ValidateChildren(); if (Name_Validation.Text == "" && Surname_Validation.Text == "" && Patronymic_Validation.Text == "" && Login_Validation.Text == "" && Password_Validation.Text == "" && ConfirmPassword_Validation.Text == "") { DTORegisterViewModel dtoRegisterViewModel = new DTORegisterViewModel() { Name = NameBox.Text, Surname = SurnameBox.Text, Patronymic = PatronymicBox.Text, Login = LoginBox.Text, Password = PasswordBox.Text, Role = RoleBox.Text }; var responce = UserService.Register(dtoRegisterViewModel); if (responce == null) { MessageBox.Show("Registration successful"); NameBox.Text = ""; SurnameBox.Text = ""; PatronymicBox.Text = ""; LoginBox.Text = ""; PasswordBox.Text = ""; ConfirmPasswordBox.Text = ""; RoleBox.SelectedItem = "user"; Register_Validation.Text = ""; return; } Register_Validation.Text = responce; } }
public async Task <OperationDetails> Register(DTORegisterViewModel dtoRegisterViewModel) { ApplicationUser user = await Database.UserManager.FindByEmailAsync(dtoRegisterViewModel.Email); if (user == null) { // Check NickName for unique. if (Database.UserManager.Users.FirstOrDefault(x => x.NickName == dtoRegisterViewModel.NickName) != null) { return(new OperationDetails(false, "User with the same NickName already exists.", "NickName")); } user = new ApplicationUser { UserName = dtoRegisterViewModel.Email, Email = dtoRegisterViewModel.Email, NickName = dtoRegisterViewModel.NickName, Online = true, TimeLogin = DateTime.Now }; var password = new UserPasswordValidator(); var validatePassword = password.ValidateAsync(dtoRegisterViewModel.Password).Result; if (validatePassword.Errors.Count() > 0) { return(new OperationDetails(false, validatePassword.Errors.FirstOrDefault(), "")); } var result = await Database.UserManager.CreateAsync(user, dtoRegisterViewModel.Password); if (result.Errors.Count() > 0) { return(new OperationDetails(false, result.Errors.FirstOrDefault(), "")); } await Database.UserManager.AddToRoleAsync(user.Id, "user"); var code = await Database.UserManager.GenerateEmailConfirmationTokenAsync(user.Id); return(new OperationDetails(true, user.Id, code)); } else { return(new OperationDetails(false, "User with the same Login (Email) already exists.", "Email")); } }
public string Register(DTORegisterViewModel dtoRegisterViewModel) { var userCurrent = Database.GetManager(dtoRegisterViewModel.Login); if (userCurrent == null) { Manager manager = new Manager { Name = dtoRegisterViewModel.Name, Surname = dtoRegisterViewModel.Surname, Patronymic = dtoRegisterViewModel.Patronymic, UserName = dtoRegisterViewModel.Login }; var user = Database.GetManager(dtoRegisterViewModel.Name, dtoRegisterViewModel.Surname, dtoRegisterViewModel.Patronymic); if (user != null) { return("User with the same Name, Surname, Patronymic already exists."); } if (dtoRegisterViewModel.Role == "admin") { manager.LockoutEnabled = false; } else { manager.LockoutEnabled = true; } manager.AccessFailedCount = 3; var result = Database.UserManager.Create(manager, dtoRegisterViewModel.Password); if (result.Succeeded) { Database.UserManager.AddToRoleAsync(manager.Id, dtoRegisterViewModel.Role); return(null); } return("Close this window and reset program."); } return("User with the same Login already exists."); }