public async Task <IWrappedResponse> Summary(VouchersSearchRequest request) { var cmd = ServiceCommand <IWrappedResponse, Rules.Vouchers.Summary.MainRule> .Create(_serviceProvider) .When(new Rules.Vouchers.Summary.MainRule(request)) .Then(SummaryAction); return(await cmd.Execute()); }
/// <summary> /// Returns filtered results /// </summary> /// <param name="request"></param> /// <returns></returns> public List <Olma.Voucher> Filter(VouchersSearchRequest request) { var results = _olmaDbContext.Vouchers.Where(v => v.CreatedById.Value == request.CustomerId.FirstOrDefault() && (request.ToIssueDate.HasValue && v.CreatedAt <= request.ToIssueDate) && (request.FromIssueDate.HasValue && v.CreatedAt >= request.FromIssueDate) && (request.Shipper.Length != 0 && v.Shipper.CompanyName.ToLower().Contains(request.Shipper.ToLower())) && (request.Shipper.Length != 0 && v.Recipient.CompanyName.ToLower().Contains(request.Recipient.ToLower())) && (request.DocumentNumber.Length != 0 && v.Document.Number.ToLower().Contains(request.DocumentNumber.ToLower())) && (request.Supplier.Length != 0 && v.Supplier.CompanyName.ToLower().Contains(request.Supplier.ToLower())) && (request.Recipient.Length != 0 && v.Recipient.CompanyName.ToLower().Contains(request.Recipient.ToLower()) && (request.CustomerReference.Length != 0 && v.CustomerReference.ToLower().Contains(request.CustomerReference.ToLower())) && (request.QuantityFrom != 0 && v.Positions.FirstOrDefault().LoadCarrierQuantity >= request.QuantityFrom) && (request.QuantityTo != 0 && v.Positions.FirstOrDefault().LoadCarrierQuantity <= request.QuantityTo) && (request.States.Length != 0 && request.States.Contains(v.Status)))) .ToList(); return(results); }
public MainRule(VouchersSearchRequest request, IRule parentRule = null) { // Create Context Context = new ContextModel(request, this); ParentRule = parentRule; }
public VouchersSearchQueryRule(VouchersSearchRequest context, IRule parentRule) { // Create Context Context = new ContextModel(context, this); ParentRule = parentRule; }
public Task <ActionResult <IPaginationResult <Voucher> > > Get([FromQuery] VouchersSearchRequest request) { return(this._vouchersService.Search(request).Convert <IPaginationResult <Voucher> >(this)); }
private static IQueryable <Olma.Voucher> OrderingQuery(VouchersSearchRequest request, IQueryable <Olma.Voucher> query) { switch (request.SortBy) { case VouchersSearchRequestSortOptions.IssuedBy: query = query.OrderBy(i => i.CustomerDivision.Name, request.SortDirection); break; case VouchersSearchRequestSortOptions.IssuanceDate: // HACK Sorting - Using CreatedAt as we dont have field for IssuedAt query = query.OrderBy(i => i.CreatedAt, request.SortDirection); break; case VouchersSearchRequestSortOptions.ValidUntil: query = query.OrderBy(i => i.ValidUntil, request.SortDirection); break; case VouchersSearchRequestSortOptions.RecipientType: // HACK Sorting - Enum Value vs Localized Name RecipientType query = query.OrderBy(i => i.RecipientType, request.SortDirection); break; case VouchersSearchRequestSortOptions.Recipient: query = query.OrderBy(i => i.Recipient.CompanyName, request.SortDirection); break; case VouchersSearchRequestSortOptions.Reason: // HACK Sorting - Not Localized VoucherReasonType query = query.OrderBy(i => i.ReasonType.Name, request.SortDirection); break; case VouchersSearchRequestSortOptions.Type: // HACK Sorting - Enum Value vs Localized Name VoucherType query = query.OrderBy(i => i.Type, request.SortDirection); break; case VouchersSearchRequestSortOptions.Status: // HACK Sorting - Enum Value vs Localized Name VoucherStatus query = query.OrderBy(i => i.Status, request.SortDirection); break; case VouchersSearchRequestSortOptions.Quantity: query = query.OrderBy(o => o.Positions.Where(p => p.LoadCarrier.TypeId == request.LoadCarrierTypes.First()).Sum(p => p.LoadCarrierQuantity), request.SortDirection); break; case VouchersSearchRequestSortOptions.DocumentNumber: query = query.OrderBy(i => i.Document.Number, request.SortDirection); break; case VouchersSearchRequestSortOptions.Supplier: query = query.OrderBy(i => i.Supplier.CompanyName, request.SortDirection); break; case VouchersSearchRequestSortOptions.Shipper: query = query.OrderBy(i => i.Shipper.CompanyName, request.SortDirection); break; case VouchersSearchRequestSortOptions.SubShipper: query = query.OrderBy(i => i.SubShipper.CompanyName, request.SortDirection); break; case VouchersSearchRequestSortOptions.HasDplNote: query = query.OrderBy(i => i.DplNotes.Any()); break; case VouchersSearchRequestSortOptions.CustomerReference: query = query.OrderBy(i => i.CustomerReference, request.SortDirection); break; default: query = query.OrderBy(i => i.CreatedAt, System.ComponentModel.ListSortDirection.Descending); break; } return(query); }
public Task <ActionResult <IEnumerable <VoucherSummary> > > Get([FromQuery] VouchersSearchRequest request) { return(this._vouchersService.Summary(request).Convert <IEnumerable <VoucherSummary> >(this)); }