示例#1
0
        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());
        }
示例#2
0
        /// <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);
        }
示例#3
0
 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;
 }
示例#5
0
 public Task <ActionResult <IPaginationResult <Voucher> > > Get([FromQuery] VouchersSearchRequest request)
 {
     return(this._vouchersService.Search(request).Convert <IPaginationResult <Voucher> >(this));
 }
示例#6
0
        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);
        }
示例#7
0
 public Task <ActionResult <IEnumerable <VoucherSummary> > > Get([FromQuery] VouchersSearchRequest request)
 {
     return(this._vouchersService.Summary(request).Convert <IEnumerable <VoucherSummary> >(this));
 }