コード例 #1
0
        public bool AddRole(UsersWithRoles UsersWithRole)
        {
            bool   result           = true;
            string connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20201104082923.mdf;Initial Catalog=aspnet-WebApplication1-20201104082923;Integrated Security=True";
            string sqlExpression    = "UPDATE AspNetUserRoles SET RoleId=@RoleId WHERE UserId=@UserId";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand sql = new SqlCommand(sqlExpression, connection);
                sql.Parameters.Add("@UserId", SqlDbType.NVarChar);
                sql.Parameters["@UserId"].Value = UsersWithRole.UserId;
                sql.Parameters.Add("@RoleId", SqlDbType.NVarChar);
                sql.Parameters["@RoleId"].Value = UsersWithRole.RoleId;
                try
                {
                    connection.Open();
                    Int32 rowsAffected = sql.ExecuteNonQuery();
                    Console.WriteLine("RowsAffected: {0}", rowsAffected);
                }
                catch (Exception)
                {
                    result = false;
                }
                return(result);
            }
        }
コード例 #2
0
 public ActionResult AddRole([Bind(Exclude = "")] UsersWithRoles UsersWithRole)
 {
     try
     {
         if (bases.AddRole(UsersWithRole))
         {
             return(RedirectToAction("Index"));
         }
         else
         {
             return(View("AddRole"));
         }
     }
     catch
     {
         return(View("AddRole"));
     }
 }
コード例 #3
0
 public ActionResult Edit([Bind(Exclude = "")] UsersWithRoles UsersWithRole)
 {
     try
     {
         if (bases.Edited(UsersWithRole))
         {
             return(RedirectToAction("Index"));
         }
         else
         {
             return(View("Edit"));
         }
     }
     catch
     {
         return(View("Edit"));
     }
 }
コード例 #4
0
        public async Task <IActionResult> Index()
        {
            try
            {
                var query = @"SELECT u.Id, u.Username, u.Email, r.Name FROM IdentityUser u
                          INNER JOIN IdentityUserRole ur on ur.UserId = u.Id
                          INNER JOIN IdentityRole r on ur.RoleId = r.Id";

                var lookup = new Dictionary <int, UsersWithRoles>();

                await _dbConnection.QueryAsync <UsersWithRoles, IdentityRoles, UsersWithRoles>(query, (u, r) =>
                {
                    var usersWithRoles = new UsersWithRoles();
                    if (!lookup.TryGetValue(u.Id, out usersWithRoles))
                    {
                        lookup.Add(u.Id, usersWithRoles = u);
                    }

                    if (usersWithRoles.UserRoles == null)
                    {
                        usersWithRoles.UserRoles = new List <IdentityRoles>();
                    }

                    usersWithRoles.UserRoles.Add(r);
                    return(usersWithRoles);
                }, splitOn : "Name");

                ViewBag.Roles = await _dbConnection.GetAllAsync <IdentityRoles>();

                return(View(lookup.Values.ToList()));
            }
            catch (Exception ex)
            {
                var logger = LogManager.GetLogger("FileLogger");
                logger.Log(NLog.LogLevel.Error, $"\nHata Mesajı: {ex.Message}\nStackTrace:{ex.StackTrace}");
                return(View());
            }
        }
コード例 #5
0
        public async Task <IActionResult> ManageUsers()
        {
            var roles = await _roleManager.Roles.ToListAsync();

            if (roles == null)
            {
                ViewBag.ErrorMessage = "Any roles cannot be found";
                return(View("NotFound"));
            }

            var vm = new ManageUsersVM()
            {
                Roles          = new List <Role>(),
                UsersWithRoles = new List <UsersWithRoles>(),
            };

            vm.Roles.AddRange(roles);

            foreach (var role in roles)
            {
                foreach (var user in _userManager.Users)
                {
                    if (await _userManager.IsInRoleAsync(user, role.Name))
                    {
                        var usersRoles = new UsersWithRoles()
                        {
                            UserName = user.UserName,
                            RoleName = role.Name,
                            RoleId   = role.Id,
                            UserId   = user.Id
                        };
                        vm.UsersWithRoles.Add(usersRoles);
                    }
                }
            }

            return(View(vm));
        }
コード例 #6
0
        public async Task <IActionResult> EditUsersInRole(int id)
        {
            ViewBag.roleId = id;
            var role = await _roleManager.FindByIdAsync(id.ToString());

            ViewBag.RoleName = role.Name;

            if (role == null)
            {
                ViewBag.ErrorMessage = $"Role with Id = {id} cannot be found";
                return(View("NotFound"));
            }

            var vm = new List <UsersWithRoles>();

            foreach (var user in _userManager.Users)
            {
                var userRole = new UsersWithRoles
                {
                    UserId   = user.Id,
                    UserName = user.UserName
                };

                if (await _userManager.IsInRoleAsync(user, role.Name))
                {
                    userRole.IsSelected = true;
                }
                else
                {
                    userRole.IsSelected = false;
                }

                vm.Add(userRole);
            }

            return(View(vm));
        }
コード例 #7
0
 public override async Task <IEnumerable <User> > GetAllAsync() =>
 await UsersWithRoles.ToListAsync();
コード例 #8
0
 public override async Task <IEnumerable <User> > GetAllAsync(Expression <Func <User, bool> > condition) =>
 await UsersWithRoles.Where(condition).ToListAsync();
コード例 #9
0
 public override async Task <User> FindAsync(Expression <Func <User, bool> > condition) =>
 await UsersWithRoles.SingleOrDefaultAsync(condition);