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 }); } }
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)); } }