public async Task <IWrappedResponse <IPaginationResult <Contracts.Models.OrderMatch> > > Search(OrderMatchesSearchRequest request) { var olmaOrderMatchQuery = _olmaOrderMatchRepo .FindAll() .AsNoTracking(); #region security // TODO add security #endregion #region convert search request if (request.Code != null) { olmaOrderMatchQuery = olmaOrderMatchQuery.Where(om => om.DigitalCode == request.Code); } if (request.PostingAccountId?.Count > 0) { olmaOrderMatchQuery = olmaOrderMatchQuery.Where(om => request.PostingAccountId.Contains(om.Demand.Order.PostingAccountId) || request.PostingAccountId.Contains(om.Supply.Order.PostingAccountId)); } if (request.Statuses?.Count > 0) { olmaOrderMatchQuery = olmaOrderMatchQuery.Where(om => request.Statuses.Contains(om.Status)); } #endregion #region ordering olmaOrderMatchQuery = olmaOrderMatchQuery.OrderByDescending(o => o.Id); #endregion var projectedQuery = olmaOrderMatchQuery.ProjectTo <Contracts.Models.OrderMatch>(Mapper.ConfigurationProvider); var mappedResult = projectedQuery.ToPaginationResult(request); return(Ok(mappedResult)); }
public Task <ActionResult <IPaginationResult <OrderMatch> > > Get([FromQuery] OrderMatchesSearchRequest request) { return(this._orderMatchesService.Search(request).Convert(this)); }