public async Task <IActionResult> CreateUserAdmin(SystemAdminViewModel vm) { ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { //Til systemadmin til at oprette de forskellige typer brugere var user = new UserAdmin() { UserName = vm.Input.Email, Email = vm.Input.Email, Name = vm.Input.Name, WorkAddress = new Address() { StreetAddress = vm.Input.StreetAddress, Zipcode = vm.Input.Zipcode }, PhoneNumber = vm.Input.Phonenumber, PaymentMethod = vm.Input.PaymentMethod, EmailConfirmed = true }; var result = await _userManager.CreateAsync(user, vm.Input.Password); if (result.Succeeded) { await _userManager.AddClaimAsync(user, new Claim("UserAdmin", "IsUserAdmin")); _logger.LogInformation("UserAdmin is created! "); var systemadmin = await _dataAccess.SystemAdmins.GetSingleSystemAdminAsync(User.Identity.Name); systemadmin.UserAdmins.Add(user); _dataAccess.Complete(); //if (_userManager.Options.SignIn.RequireConfirmedAccount) //{ // return RedirectToPage("RegisterConfirmation", new { email = vm.Input.Email, returnUrl = returnUrl }); //} //else //{ // await _signInManager.SignInAsync(user, isPersistent: false); // return LocalRedirect(returnUrl); //} } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(RedirectToAction(nameof(Index))); }
public SystemAdminController(UserManager <ApplicationUser> userManager, SignInManager <ApplicationUser> signInManager, ILogger <RegisterModel> logger, IEmailSender emailSender, ApplicationDbContext context) { _userManager = userManager; _signInManager = signInManager; _logger = logger; _emailSender = emailSender; _context = context; _dataAccess = new DataAccsessAction(context); _systemAdminViewModel = new SystemAdminViewModel(); }
public async Task <IActionResult> EditUserAdmin(string id, SystemAdminViewModel vm) { var userAdmin = await _dataAccess.UserAdmins.GetUserAdmin(id); userAdmin.Name = vm.UserAdmin.Name; userAdmin.Email = vm.UserAdmin.Email; userAdmin.UserName = vm.UserAdmin.Email; userAdmin.WorkAddress.StreetAddress = vm.UserAdmin.WorkAddress.StreetAddress; userAdmin.WorkAddress.Zipcode = vm.UserAdmin.WorkAddress.Zipcode; userAdmin.PhoneNumber = vm.UserAdmin.PhoneNumber; userAdmin.PaymentMethod = vm.UserAdmin.PaymentMethod; userAdmin.PaymentDueDate = vm.UserAdmin.PaymentDueDate; if (ModelState.IsValid) { var result = await _userManager.UpdateAsync(userAdmin); if (result.Succeeded) { return(RedirectToAction(nameof(Index))); } } return(View(vm.UserAdmin)); }