public async Task <ActionResult> CreateAdmin(CreateAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    FirstName  = model.FirstName,
                    LastName   = model.LastName,
                    UserName   = model.Email,
                    Email      = model.Email,
                    CreditCard = new CreditCard()
                    {
                        CVV        = model.CVV,
                        CardNumber = model.CardNumber,
                        CardOwner  = model.CardOwner,
                        Year       = model.Year,
                        Month      = model.Month,
                        CardType   = model.CardType
                    }
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    // await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                    await this.UserManager.AddToRoleAsync(user.Id, model.UserRoles);

                    return(RedirectToAction("Index", "Account"));
                }
                //ViewBag.Name = new SelectList(db.Roles.Where(u => !u.Name.Contains("Admin"))
                //                          .ToList(), "Name", "Name");
                AddErrors(result);
            }
            return(View(model));
        }
        public async Task <ActionResult> AddAdmin(CreateAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser
                {
                    UserName = model.Username,
                    Email    = model.EmailAdress
                };

                var admin = new Admin
                {
                    AdminId = user.Id,
                    Name    = model.Name
                };
                //TODO: delete password field from CreateAdminViewModel. Use instead randomly generated password. Then send it to the admin e-mail
                //var password = Membership.GeneratePassword(12, 4);

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user.Id, "Admin");

                    var res = await _adminManager.Create(admin);

                    //var user = await
                    //await SendEmail(user.Id, new RegistrationMailMessageBuilder(model.Username));

                    return(RedirectIfSignedIn());
                }
            }

            return(View(model));
        }
Beispiel #3
0
        public ActionResult CreateAdmin(CreateAdminViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            ApplicationUser newUser = new ApplicationUser()
            {
                Email    = model.Email,
                UserName = model.Email,
            };

            try
            {
                if (UserManager.FindByName(model.Email) != null)
                {
                    ModelState.AddModelError("", "User with such email is already exist.");
                    return(View(model));
                }
                IdentityResult result = UserManager.Create(newUser, model.Password);
                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", "Error.");
                    return(View(model));
                }
                UserManager.AddToRole(newUser.Id, "Admin");
            }
            catch
            {
                //logging
                ModelState.AddModelError("", "Internal server error.");
                return(View(model));
            }
            return(RedirectToAction("Admins"));
        }
        public ActionResult CreateAdmin()
        {
            var viewModel = new CreateAdminViewModel()
            {
                UserRoles = "Admin"
            };

            return(View(viewModel));
        }
        // [Authorize(AuthenticationSchemes = "frontend")]
        public IActionResult Create()
        {
            List <IdentityRole> list = new List <IdentityRole>();

            list         = roleManager.Roles.ToList();
            ViewBag.list = list;
            string generatedPassword   = passwordGenerator.GeneratePassword(15);
            CreateAdminViewModel model = new CreateAdminViewModel();

            model.Password = generatedPassword;
            return(View(model));
        }
Beispiel #6
0
        public ActionResult CreateAdmin(int id)
        {
            var company = _companyService.Get(id);

            if (company == null)
            {
                return(RedirectToAction("Admins"));
            }

            var model = new CreateAdminViewModel
            {
                CompanyId = company.Id,
            };

            return(View(model));
        }
        public async Task <IActionResult> Create(CreateAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = processFileUpload.UploadImage(model.Image, "uploads");
                var    role           = await roleManager.FindByIdAsync(model.Role.Id);

                IdentityUser user = new IdentityUser
                {
                    UserName    = passwordGenerator.GenerateUsernameFromEmail(model.EmailAddress),
                    Email       = model.EmailAddress,
                    PhoneNumber = model.PhoneNumber,
                };
                IdentityResult result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    IdentityResult roleAddedResult = await userManager.AddToRoleAsync(user, role.Name);

                    if (roleAddedResult.Succeeded)
                    {
                        Admin admin = new Admin
                        {
                            Firstname      = model.Firstname,
                            Lastname       = model.Lastname,
                            ImagePath      = uniqueFileName,
                            IdentityUserId = user.Id
                        };
                        _entityRepository.Insert(admin);
                        _entityRepository.Save();
                        TempData["created"] = $"Admin { model.Firstname } { model.Lastname }, was created successfully.";
                        return(RedirectToAction("index"));
                    }
                    foreach (var error in roleAddedResult.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            return(View(model));
        }
Beispiel #8
0
        public ActionResult CreateAdmin(CreateAdminViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.Password != model.PasswordConfirmation)
            {
                ModelState.AddModelError("Password", "Password doesn't match its confirmation");
                return(View(model));
            }

            if (_userService.GetAll().Any(u => u.Email == model.Email))
            {
                ModelState.AddModelError("Email", "Email already is use");
                return(View(model));
            }

            _userManager.Register(model.Email, model.Password, model.CompanyId, UserRole.Admin, model.Status);

            return(RedirectToAction("Admins", "Companies", new { id = model.CompanyId }));
        }
Beispiel #9
0
        public async Task <IActionResult> Index(CreateAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName  = "******",
                    Email     = "*****@*****.**",
                    FirstName = "Admin",
                    LastName  = "Account"
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await _roleManager.CreateAsync(new IdentityRole("Admin"));

                    await _roleManager.CreateAsync(new IdentityRole("Teacher"));

                    await _roleManager.CreateAsync(new IdentityRole("Student"));

                    await _userManager.AddToRoleAsync(user, "Admin");

                    await _signInManager.SignInAsync(user, isPersistent : false);

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

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(View());
        }
Beispiel #10
0
        public async Task <IActionResult> CreateAdminAsync([FromBody] CreateAdminViewModel createAdminViewModel)
        {
            var isAdminCreated = await _adminService.CreateAdminAsync(createAdminViewModel.Login, createAdminViewModel.Password);

            return(Ok(isAdminCreated));
        }