public async Task <ObjectResult> Handle(UserRoleBatchDeleteCommand request, CancellationToken cancellationToken)
        {
            var resourcePartUri = uriService.GetUriWithoutQuery().URIUpperLevel();
            var result          = new MultiStatusObjectResult();

            var userRoleIds = request.UserRoleIds.Split(",", StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < userRoleIds.Length; i++)
            {
                var userRoleId = userRoleIds[i];
                var role       = await userRoleRepository.FindAsync(userRoleId);

                if (role == null)
                {
                    result.AddResult($"{resourcePartUri}/{userRoleId}", 404, "");
                    continue;
                }

                if (role.IsDefault == EntityStateConst.IsDefault)
                {
                    var roleType = Enumeration.FromValue <Role>(role.RoleId);
                    result.AddResult($"{resourcePartUri}/{userRoleId}", 403, localizer["UserRole.CannotDeleteDefaultRole", localizer[roleType.Name]]);
                    continue;
                }

                await userRoleRepository.DeleteAsync(userRoleId, null);

                result.AddResult($"{resourcePartUri}/{userRoleId}", 200, "");
            }

            return(result.Transfer());
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> DeleteUserRole(string RoleID, string UserIDs)
        {
            try
            {
                if (RoleID != null && UserIDs != null)
                {
                    string[] userid    = UserIDs.Split(',');
                    int      intRoleID = Convert.ToInt32(RoleID);
                    foreach (var item in userid)
                    {
                        int      intUserID = Convert.ToInt32(item);
                        UserRole ur        = await UserRoleRepository.FindAsync(u => u.RoleID == intRoleID && u.UserID == intUserID);

                        if (ur != null)
                        {
                            UserRoleRepository.Delete(ur);
                        }
                    }
                    return(Json(new
                    {
                        Success = true
                    }));
                }
                return(Json(new
                {
                    Success = false
                }));
            }
            catch (Exception ex)
            {
                LogRepository.Add(new EventLog()
                {
                    Name = Session["LoginedUser"].ToString(), Date = DateTime.Now.ToLocalTime(), Event = "删除用户角色失败" + ex.Message
                });
                return(Json(new
                {
                    Success = false
                }));
            }
        }