Пример #1
0
        public async Task<ActionResult> Create(UsersAdminCreateViewModel model)
        {
            if(ModelState.IsValid)
            {
                var user = new ApplicationUser();
                user.UserName = model.UserName;
                user.Email = model.Email;

                var adminResult = await UserManager.CreateAsync(user, model.Password);
                if(adminResult.Succeeded)
                {
                    if(model.RolesIdForUser.Count()!=0)
                    {
                        //set Role for each RoleId
                        foreach(var item in model.RolesIdForUser)
                        {
                            var role = await RoleManager.FindByIdAsync(item);
                            var result = await UserManager.AddToRoleAsync(user.Id, role.Name);

                            //failed
                            if (!result.Succeeded)
                            {
                                //failed to set role for user
                                ModelState.AddModelError("", result.Errors.First().ToString());
                                return View(model);                             
                            }
                        }                    
                    }
                }
                else
                {
                    //failed to create user
                    ModelState.AddModelError("", adminResult.Errors.First().ToString());     
                    return View(model);
                }
                //succeed to add a new user
                return RedirectToAction("Index");
            }
            else
            {
                //Note-Since we do not use ViewModel instead of ViewBag to pass Roles data to View
                //So when the post of the form failed.Need Not To Rebuild Roles data

                //var createVM = new UsersAdminCreateViewModel
                //{
                //    Roles = new SelectList(await RoleManager.Roles.ToListAsync(), "Id", "Name")
                //};
                //ViewBag.RoleId = new SelectList(RoleManager.Roles, "Id", "Name");

                //failed to add
                return View(model);
            }

        }
Пример #2
0
        //Get: /User/Create
        public async Task<ActionResult> Create()
        {
            //get the list of the roles
            var createVM = new UsersAdminCreateViewModel
            {
                Roles = await RoleManager.Roles.ToListAsync()
            };

            return View(createVM);
        }