public RoleResponse Map(DbRole role, List <DbRightsLocalization> rights, List <UserData> users)
        {
            if (role == null)
            {
                return(null);
            }

            var userInfos = users?.Select(_userInfoMapper.Map).ToList();

            return(new RoleResponse
            {
                Role = _roleInfoMapper.Map(role, rights.Select(_rightMapper.Map).ToList(), userInfos),
                Users = userInfos?.Where(ui => role.Users.Any(ud => ud.UserId == ui.Id)).ToList()
            });
        }
        public async Task <FindResultResponse <RoleInfo> > ExecuteAsync(FindRolesFilter filter)
        {
            if (!_findFilterValidator.ValidateCustom(filter, out List <string> errors))
            {
                _httpContextAccessor.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;

                return(new FindResultResponse <RoleInfo>
                {
                    Status = OperationResultStatusType.Failed,
                    Errors = errors
                });
            }

            FindResultResponse <RoleInfo> result = new();

            (List <(DbRole role, List <DbRightsLocalization> rights)> roles, int totalCount) = filter.IncludeDeactivated
        ? await _roleRepository.FindAllAsync(filter)
        : await _roleRepository.FindActiveAsync(filter);

            result.TotalCount = totalCount;

            List <Guid> usersIds = new();

            foreach ((DbRole role, List <DbRightsLocalization> rights) in roles)
            {
                usersIds.Add(role.CreatedBy);

                if (role.ModifiedBy.HasValue)
                {
                    usersIds.Add(role.ModifiedBy.Value);
                }
            }

            List <UserInfo> usersInfos = (await GetUsersAsync(usersIds.Distinct().ToList(), errors))?
                                         .Select(_userInfoMapper.Map)
                                         .ToList();

            result.Body = roles.Select(
                pair => _roleInfoMapper.Map(pair.role, pair.rights.Select(_rightMapper.Map).ToList(), usersInfos)).ToList();

            result.Errors = errors;

            result.Status = errors.Any() ?
                            OperationResultStatusType.PartialSuccess :
                            OperationResultStatusType.FullSuccess;

            return(result);
        }