Esempio n. 1
0
        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"));
            }
        }
Esempio n. 2
0
        // 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;
            }
        }
Esempio n. 3
0
        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"));
            }
        }
Esempio n. 4
0
        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.");
        }