Пример #1
0
        public async Task <IActionResult> UserCreateBySong([Bind("Id,Subject,Rating,Content,ReviewableId")] Review review)
        {
            if (ModelState.IsValid)
            {
                string          userName    = User.Identity.Name;
                ApplicationUser currentUser = await _userManager.FindByNameAsync(userName);

                review.Author   = currentUser;
                review.AuthorId = currentUser.Id;

                _context.Reviews.Add(review);
                _context.SaveChanges();

                return(RedirectToAction(nameof(ReviewsBySong), new { id = review.ReviewableId }));
            }

            Song song = _context.Songs.FirstOrDefault(s => s.Id == review.ReviewableId);

            if (song == null)
            {
                return(NotFound());
            }

            ViewBag.Item = song;

            return(View(review));
        }
        //[Authorize(Roles = "Admin")]
        public async Task <ActionResult> AddRoleToUserAsync(string roleName, string userName)
        {
            List <string> roles;

            // var roleStore = new RoleStore<IdentityRole>(_dataContext);
            // var roleManager = new RoleManager<IdentityRole>(roleStore);

            // var userStore = new UserStore<ApplicationUser>(_dataContext);
            // var userManager = new UserManager<ApplicationUser>(userStore);

            var user = await _userManager.FindByNameAsync(userName);

            if (user == null)
            {
                throw new Exception("User not found!");
            }

            var role = await _roleManager.FindByNameAsync(roleName);

            if (role == null)
            {
                throw new Exception("Role not found!");
            }

            if (await _userManager.IsInRoleAsync(user, role.Name))
            {
                ViewBag.ErrorMessage = "This user already has the role specified !";

                roles         = (from r in _roleManager.Roles select r.Name).ToList();
                ViewBag.Roles = new SelectList(roles);

                ViewBag.UserName = userName;

                return(View());
            }
            else
            {
                await _userManager.AddToRoleAsync(user, role.Name);

                _dataContext.SaveChanges();

                List <string> userRoles;
                var           userRoleNames = (from r in await _userManager.GetRolesAsync(user) select r);
                // userRoles = (from id in userRoleIds
                //                 let r = await _roleManager.FindByIdAsync(id)
                //                 select r).ToList();

                userRoles = new List <string>();
                foreach (var name in userRoleNames)
                {
                    var r = await _roleManager.FindByNameAsync(name);

                    userRoles.Add(r.Name);
                }

                ViewBag.UserName     = userName;
                ViewBag.RolesForUser = userRoles;

                return(View("ViewUsersRoles"));
            }
        }