public IActionResult Get([FromBody] OperationGetRequest query) => ReturnBadRequestIfThrowError(() => { var resources = _operationsService.GetOperations(query, UserId); Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(resources.PagingData())); return(resources); });
public PagedList <OperationResponse> GetOperations(OperationGetRequest response, Guid userId) => PagedList <OperationResponse> .ToPagedList(_repository.GetAll() .Where(o => o.OperationCategory.UserId == userId) .Where(o => o.ResourceId == (response.ResourceId ?? o.ResourceId)) .Where(o => o.OperationCategoryId == (response.OperationCategoryId ?? o.OperationCategoryId)) .Where(o => o.IsIncome == (response.IsIncome ?? o.IsIncome)) .Where(o => o.Name == (response.Name ?? o.Name)) .Where(o => o.Value >= (response.MinValue ?? o.Value)) .Where(o => o.Value <= (response.MaxValue ?? o.Value)) .Where(o => o.OccuredAt >= (response.MinOccuredAt ?? o.OccuredAt)) .Where(o => o.OccuredAt <= (response.MinOccuredAt ?? o.OccuredAt)) .OrderByDescending(o => o.OccuredAt) .Select(r => _mapper.Map <OperationResponse>(r)), response.Page, response.Limit);