Beispiel #1
0
        public static IQueryable <TDomain> ApplyTableRequestIQueryable <TEntity, TDomain, TKey>(this IQueryable <TEntity> query, ListRequest request, params SortOrder[] sortOrders)
            where TEntity : IEntity <TKey>
            where TDomain : IDomainBase <TKey>
        {
            var domainQuery = query.ProjectTo <TDomain>();

            Defensive.AssertNotNull(domainQuery);

            if (request.Filters.Any())
            {
                domainQuery = domainQuery.Where(FilterExpressionCreator.CreateFilterExpression <TEntity, TDomain>(request.Filters));
            }

            domainQuery = Sort <TDomain, TKey>(domainQuery, sortOrders, request.Sorts);

            if (!request.SkipPaging)
            {
                domainQuery = domainQuery.Skip(request.Skip);

                if (request.Take > 0)
                {
                    domainQuery = domainQuery.Take(request.Take);
                }
            }

            return(domainQuery);
        }
Beispiel #2
0
 public PrintController(IOrdersManager manager, IInvoicesManager invoicesManager,
                        IInvoiceStornosManager invoiceStornosManager, ITaxesManager taxesManager,
                        ITransportOrdersManager transportOrdersManager, IPrinterManager printerManager,
                        ITermsManager termsManager) :
     base()
 {
     this.taxesManager           = taxesManager;
     this.invoicesManager        = invoicesManager;
     this.invoiceStornosManager  = invoiceStornosManager;
     this.transportOrdersManager = transportOrdersManager;
     this.printerManager         = printerManager;
     this.termsManager           = termsManager;
     Manager = manager;
     FilterExpressionCreator = new FilterExpressionCreator();
 }
Beispiel #3
0
 public PrintController(IOrdersManager manager, IInvoicesManager invoicesManager, 
     IInvoiceStornosManager invoiceStornosManager, ITaxesManager taxesManager,
     ITransportOrdersManager transportOrdersManager, IPrinterManager printerManager,
     ITermsManager termsManager) :
     base()
 {
     this.taxesManager = taxesManager;
     this.invoicesManager = invoicesManager;
     this.invoiceStornosManager = invoiceStornosManager;
     this.transportOrdersManager = transportOrdersManager;
     this.printerManager = printerManager;
     this.termsManager = termsManager;
     Manager = manager;
     FilterExpressionCreator = new FilterExpressionCreator();
 }
Beispiel #4
0
        public static ListResult <TDomain> ApplyTableRequest <TEntity, TDomain, TKey>(this IQueryable <TEntity> query, ListRequest request, params SortOrder[] sortOrders)
            where TEntity : IEntity <TKey>
            where TDomain : IDomainBase <TKey>
        {
            var totalCount = query.Count();
            var filtered   = totalCount;

            var domainQuery = query.ProjectTo <TDomain>();

            Defensive.AssertNotNull(domainQuery);

            if (request.Filters.Any())
            {
                domainQuery = domainQuery.Where(FilterExpressionCreator.CreateFilterExpression <TEntity, TDomain>(request.Filters));
                filtered    = domainQuery.Count();
            }

            domainQuery = Sort <TDomain, TKey>(domainQuery, sortOrders, request.Sorts);

            if (!request.SkipPaging)
            {
                domainQuery = domainQuery.Skip(request.Skip);

                if (request.Take > 0)
                {
                    domainQuery = domainQuery.Take(request.Take);
                }
            }

            List <TDomain> list = domainQuery.ToList();

            var config      = Mapper.Configuration.FindTypeMapFor <TEntity, TDomain>();
            var hasAfterMap = config != null && config.AfterMapActions.Any();

            if (hasAfterMap)
            {
                //second pass TDomain => TDomain to apply AfterMap
                list = list.Select(x => Mapper.Map <TDomain>(x)).ToList();
            }

            return(new ListResult <TDomain>(list, filtered, totalCount));
        }