public async Task <PaginatedResponseDto <ResourceDto> > GetAllAsync(ResourcePaginatedRequestDto request)
        {
            using (var uow = UowManager.Begin())
                using (UowManager.Current.OverrideCurrentLanguageCode(request.LanguageCode ?? Session.LanguageCode))
                {
                    var options = request.ResolveRepositoryGetAllProjectedOptions(ResourceDto.Projection);
                    var dtos    = await _resourceRepository.GetAllListAsync(
                        x =>
                        (!request.WithId.HasValue || (request.WithId.HasValue && request.WithId.Value == x.Id)) &&
                        (string.IsNullOrEmpty(request.WithKey) || (!string.IsNullOrEmpty(request.WithKey) && request.WithKey == x.Key)) &&
                        (!request.MustBePublic.HasValue || (request.MustBePublic.HasValue && request.MustBePublic == !x.ResourceGroup.IsPrivate))
                        , options
                        , out long total);

                    if (dtos is null)
                    {
                        throw new AppException();
                    }

                    return(new PaginatedResponseDto <ResourceDto>(dtos)
                    {
                        PageIndex = request.PageIndex,
                        PageSize = request.PageSize,
                        Total = total
                    });
                }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetAsync([FromQuery] ResourceRequestModel request)
        {
            try
            {
                // TODO: Use automapper here!
                var appRequest = new ResourcePaginatedRequestDto
                {
                    WithId  = request.WithId,
                    WithKey = request.WithKey
                              //LanguageCode = request.lang
                };
                var appResponse = await _resourcesAppService.GetAllAsync(appRequest);

                var response = appResponse.ToPaginatedResponseModel <ResourceModel, ResourceDto>();
                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }