Esempio n. 1
0
        public async Task <IActionResult> SetUserRole(SetUserRoleBindingModel model, string id)
        {
            if (!this.ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values.SelectMany(v => v.Errors).Select(error => error.ErrorMessage)));
            }

            await this.adminService.SetUserRole(id, model);

            return(RedirectToAction(nameof(this.GetUserData)));
        }
Esempio n. 2
0
        public async Task SetUserRole(string id, SetUserRoleBindingModel model)
        {
            var user = this.dbContext.Users
                       .Include(u => u.Roles)
                       .Where(u => u.IsDeleted == false)
                       .Where(u => u.Id == id)
                       .SingleOrDefault();

            var userRoleFromDb = dbContext.UserRoles.SingleOrDefault(ur => ur.UserId == user.Id);

            this.dbContext.UserRoles.Attach(userRoleFromDb);
            this.dbContext.UserRoles.Remove(userRoleFromDb);
            this.dbContext.SaveChanges();

            var chosenRole = dbContext.Roles.SingleOrDefault(r => r.Name == model.Roles.FirstOrDefault());

            userRoleFromDb.RoleId = chosenRole.Id;
            userRoleFromDb.UserId = user.Id;
            this.dbContext.Add(userRoleFromDb);

            await this.dbContext.SaveChangesAsync();
        }
Esempio n. 3
0
        public async Task <SetUserRoleBindingModel> GetUserAndRoles(string id)
        {
            var user = this.dbContext.Users
                       .Include(u => u.Roles)
                       .Where(u => u.IsDeleted == false)
                       .Where(u => u.Id == id)
                       .SingleOrDefault();

            var model = new SetUserRoleBindingModel();

            model.FullName = $"{user.FirstName} {user.LastName}";
            model.Roles    = GetUserRoles().ToList();

            foreach (var role in user.Roles)
            {
                var roleName = await this.GetRoleNameById(role.RoleId);

                model.CurrentUserRole = roleName;
            }
            model.Roles.Remove(model.CurrentUserRole);

            return(model);
        }