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")); } }