Ejemplo n.º 1
0
        private async Task AddAdminUser(string adminLogin, string adminPassword, string adminEmail)
        {
            var admin = await userManager.FindByNameAsync(adminLogin);

            if (admin == null)
            {
                admin = new User()
                {
                    UserName = adminLogin,
                    Email    = adminEmail
                };
                var identityResult = await userManager.CreateAsync(admin, adminPassword);

                if (!identityResult.Succeeded)
                {
                    throw new Exception("Can not create admin user");
                }

                var createdAdmin = await userManager.FindByNameAsync(adminLogin);

                await parameterValuesRepository.AddAllParameterValuesForUserAsync(createdAdmin.Id);
            }

            foreach (var role in UserRoles.Roles)
            {
                if (!await userManager.IsInRoleAsync(admin, role))
                {
                    await userManager.AddToRoleAsync(admin, role);
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Register(RegisterViewModel model)
        {
            IActionResult result = View(model);

            if (!ModelState.IsValid)
            {
                return(result);
            }

            User user = new User
            {
                Email    = model.Email,
                UserName = model.Login,
            };
            var identityResult = await userManager.CreateAsync(user, model.Password);

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

                var currentUser = await userManager.FindByNameAsync(model.Login);

                if (currentUser != null)
                {
                    try
                    {
                        await parameterValuesRepository.AddAllParameterValuesForUserAsync(currentUser.Id);

                        result = RedirectToAction("Index", "Home");
                    }
                    catch (Exception ex)
                    {
                        result = StatusCode(StatusCodes.Status500InternalServerError, ex);
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, $"Internal error on getting user with Id {model.Login}, please note developers");
                }
            }
            else
            {
                foreach (var error in identityResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            return(result);
        }