public IActionResult Change(VMUserAndRoles user)
        {
            if (ModelState.IsValid == false)
            {
                return(View(GetUser(user.ID)));
            }
            else
            {
                var User = DB.Users.First(f => f.Id == Int32.Parse(Request.Form["ID"]));

                if (User != null)
                {
                    User.Fname = Request.Form["FName"];
                    User.Lname = Request.Form["LName"];
                    User.Email = Request.Form["EMail"];

                    var RolesToDelite = DB.UserRoles.Where(w => w.UserId == User.Id);
                    DB.UserRoles.RemoveRange(RolesToDelite);

                    var RolesInDB = DB.Roles.Select(s => s.Role).ToArray();

                    foreach (var i in Request.Form)
                    {
                        if (RolesInDB.Contains(i.Key) == true)
                        {
                            var RoleID = DB.Roles.First(f => f.Role == i.Key).Id;
                            DB.UserRoles.Add(new UserRoles {
                                UserId = User.Id, RoleId = RoleID
                            });
                        }
                    }
                    DB.SaveChanges();

                    Response.Headers.Add("REFRESH", "3;http://localhost:3189/account");
                    return(Content("User is modified"));
                }
                else
                {
                    return(Content("User not found"));
                }
            }
        }
        private VMUserAndRoles GetUser(int UserID)
        {
            var UserAndRoles = new VMUserAndRoles();

            UserAndRoles.ID = UserID;

            var User = this.DB.Users.FirstOrDefault(f => f.Id == UserID);

            UserAndRoles.FName = User.Fname;
            UserAndRoles.LName = User.Lname;
            UserAndRoles.EMail = User.Email;

            var AllRoles = DB.Roles.Select(s => s.Role).ToArray();

            var ActiveRoles = (from acRols in DB.UserRoles
                               join allRoles in DB.Roles
                               on acRols.RoleId equals allRoles.Id
                               where acRols.UserId == UserID
                               select allRoles.Role).ToList();

            var NotActiveRoles = AllRoles.Except(ActiveRoles);

            foreach (var i in ActiveRoles)
            {
                UserAndRoles.UserRoles.Add(i, true);
            }

            foreach (var i in NotActiveRoles)
            {
                UserAndRoles.UserRoles.Add(i, false);
            }

            UserAndRoles.UserRoles = UserAndRoles.UserRoles.OrderBy(o => o.Key).ToDictionary(s => s.Key, s => s.Value);

            return(UserAndRoles);
        }