public async Task <int> Count(DirectSalesOrderPromotionFilter filter) { IQueryable <DirectSalesOrderPromotionDAO> DirectSalesOrderPromotions = DataContext.DirectSalesOrderPromotion.AsNoTracking(); DirectSalesOrderPromotions = DynamicFilter(DirectSalesOrderPromotions, filter); return(await DirectSalesOrderPromotions.CountAsync()); }
public async Task <List <DirectSalesOrderPromotion> > List(DirectSalesOrderPromotionFilter filter) { if (filter == null) { return(new List <DirectSalesOrderPromotion>()); } IQueryable <DirectSalesOrderPromotionDAO> DirectSalesOrderPromotionDAOs = DataContext.DirectSalesOrderPromotion.AsNoTracking(); DirectSalesOrderPromotionDAOs = DynamicFilter(DirectSalesOrderPromotionDAOs, filter); DirectSalesOrderPromotionDAOs = DynamicOrder(DirectSalesOrderPromotionDAOs, filter); List <DirectSalesOrderPromotion> DirectSalesOrderPromotions = await DynamicSelect(DirectSalesOrderPromotionDAOs, filter); return(DirectSalesOrderPromotions); }
private IQueryable <DirectSalesOrderPromotionDAO> OrFilter(IQueryable <DirectSalesOrderPromotionDAO> query, DirectSalesOrderPromotionFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <DirectSalesOrderPromotionDAO> initQuery = query.Where(q => false); foreach (DirectSalesOrderPromotionFilter DirectSalesOrderPromotionFilter in filter.OrFilter) { IQueryable <DirectSalesOrderPromotionDAO> queryable = query; if (DirectSalesOrderPromotionFilter.Id != null && DirectSalesOrderPromotionFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, DirectSalesOrderPromotionFilter.Id); } if (DirectSalesOrderPromotionFilter.DirectSalesOrderId != null && DirectSalesOrderPromotionFilter.DirectSalesOrderId.HasValue) { queryable = queryable.Where(q => q.DirectSalesOrderId, DirectSalesOrderPromotionFilter.DirectSalesOrderId); } if (DirectSalesOrderPromotionFilter.ItemId != null && DirectSalesOrderPromotionFilter.ItemId.HasValue) { queryable = queryable.Where(q => q.ItemId, DirectSalesOrderPromotionFilter.ItemId); } if (DirectSalesOrderPromotionFilter.UnitOfMeasureId != null && DirectSalesOrderPromotionFilter.UnitOfMeasureId.HasValue) { queryable = queryable.Where(q => q.UnitOfMeasureId, DirectSalesOrderPromotionFilter.UnitOfMeasureId); } if (DirectSalesOrderPromotionFilter.Quantity != null && DirectSalesOrderPromotionFilter.Quantity.HasValue) { queryable = queryable.Where(q => q.Quantity, DirectSalesOrderPromotionFilter.Quantity); } if (DirectSalesOrderPromotionFilter.PrimaryUnitOfMeasureId != null && DirectSalesOrderPromotionFilter.PrimaryUnitOfMeasureId.HasValue) { queryable = queryable.Where(q => q.PrimaryUnitOfMeasureId, DirectSalesOrderPromotionFilter.PrimaryUnitOfMeasureId); } if (DirectSalesOrderPromotionFilter.RequestedQuantity != null && DirectSalesOrderPromotionFilter.RequestedQuantity.HasValue) { queryable = queryable.Where(q => q.RequestedQuantity, DirectSalesOrderPromotionFilter.RequestedQuantity); } if (DirectSalesOrderPromotionFilter.Note != null && DirectSalesOrderPromotionFilter.Note.HasValue) { queryable = queryable.Where(q => q.Note, DirectSalesOrderPromotionFilter.Note); } if (DirectSalesOrderPromotionFilter.Factor != null && DirectSalesOrderPromotionFilter.Factor.HasValue) { queryable = queryable.Where(q => q.Factor.HasValue).Where(q => q.Factor, DirectSalesOrderPromotionFilter.Factor); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <DirectSalesOrderPromotionDAO> DynamicFilter(IQueryable <DirectSalesOrderPromotionDAO> query, DirectSalesOrderPromotionFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null && filter.Id.HasValue) { query = query.Where(q => q.Id, filter.Id); } if (filter.DirectSalesOrderId != null && filter.DirectSalesOrderId.HasValue) { query = query.Where(q => q.DirectSalesOrderId, filter.DirectSalesOrderId); } if (filter.ItemId != null && filter.ItemId.HasValue) { query = query.Where(q => q.ItemId, filter.ItemId); } if (filter.UnitOfMeasureId != null && filter.UnitOfMeasureId.HasValue) { query = query.Where(q => q.UnitOfMeasureId, filter.UnitOfMeasureId); } if (filter.Quantity != null && filter.Quantity.HasValue) { query = query.Where(q => q.Quantity, filter.Quantity); } if (filter.PrimaryUnitOfMeasureId != null && filter.PrimaryUnitOfMeasureId.HasValue) { query = query.Where(q => q.PrimaryUnitOfMeasureId, filter.PrimaryUnitOfMeasureId); } if (filter.RequestedQuantity != null && filter.RequestedQuantity.HasValue) { query = query.Where(q => q.RequestedQuantity, filter.RequestedQuantity); } if (filter.Note != null && filter.Note.HasValue) { query = query.Where(q => q.Note, filter.Note); } if (filter.Factor != null && filter.Factor.HasValue) { query = query.Where(q => q.Factor.HasValue).Where(q => q.Factor, filter.Factor); } query = OrFilter(query, filter); return(query); }
private async Task <List <DirectSalesOrderPromotion> > DynamicSelect(IQueryable <DirectSalesOrderPromotionDAO> query, DirectSalesOrderPromotionFilter filter) { List <DirectSalesOrderPromotion> DirectSalesOrderPromotions = await query.Select(q => new DirectSalesOrderPromotion() { Id = filter.Selects.Contains(DirectSalesOrderPromotionSelect.Id) ? q.Id : default(long), DirectSalesOrderId = filter.Selects.Contains(DirectSalesOrderPromotionSelect.DirectSalesOrder) ? q.DirectSalesOrderId : default(long), ItemId = filter.Selects.Contains(DirectSalesOrderPromotionSelect.Item) ? q.ItemId : default(long), UnitOfMeasureId = filter.Selects.Contains(DirectSalesOrderPromotionSelect.UnitOfMeasure) ? q.UnitOfMeasureId : default(long), Quantity = filter.Selects.Contains(DirectSalesOrderPromotionSelect.Quantity) ? q.Quantity : default(long), PrimaryUnitOfMeasureId = filter.Selects.Contains(DirectSalesOrderPromotionSelect.PrimaryUnitOfMeasure) ? q.PrimaryUnitOfMeasureId : default(long), RequestedQuantity = filter.Selects.Contains(DirectSalesOrderPromotionSelect.RequestedQuantity) ? q.RequestedQuantity : default(long), Note = filter.Selects.Contains(DirectSalesOrderPromotionSelect.Note) ? q.Note : default(string), Factor = filter.Selects.Contains(DirectSalesOrderPromotionSelect.Factor) ? q.Factor : default(long?), DirectSalesOrder = filter.Selects.Contains(DirectSalesOrderPromotionSelect.DirectSalesOrder) && q.DirectSalesOrder != null ? new DirectSalesOrder { Id = q.DirectSalesOrder.Id, Code = q.DirectSalesOrder.Code, OrganizationId = q.DirectSalesOrder.OrganizationId, BuyerStoreId = q.DirectSalesOrder.BuyerStoreId, PhoneNumber = q.DirectSalesOrder.PhoneNumber, StoreAddress = q.DirectSalesOrder.StoreAddress, DeliveryAddress = q.DirectSalesOrder.DeliveryAddress, SaleEmployeeId = q.DirectSalesOrder.SaleEmployeeId, CreatorId = q.DirectSalesOrder.CreatorId, OrderDate = q.DirectSalesOrder.OrderDate, DeliveryDate = q.DirectSalesOrder.DeliveryDate, RequestStateId = q.DirectSalesOrder.RequestStateId, EditedPriceStatusId = q.DirectSalesOrder.EditedPriceStatusId, Note = q.DirectSalesOrder.Note, SubTotal = q.DirectSalesOrder.SubTotal, GeneralDiscountPercentage = q.DirectSalesOrder.GeneralDiscountPercentage, GeneralDiscountAmount = q.DirectSalesOrder.GeneralDiscountAmount, TotalTaxAmount = q.DirectSalesOrder.TotalTaxAmount, TotalAfterTax = q.DirectSalesOrder.TotalAfterTax, PromotionCode = q.DirectSalesOrder.PromotionCode, PromotionValue = q.DirectSalesOrder.PromotionValue, Total = q.DirectSalesOrder.Total, RowId = q.DirectSalesOrder.RowId, } : null, Item = filter.Selects.Contains(DirectSalesOrderPromotionSelect.Item) && q.Item != null ? new Item { Id = q.Item.Id, ProductId = q.Item.ProductId, Code = q.Item.Code, Name = q.Item.Name, ScanCode = q.Item.ScanCode, SalePrice = q.Item.SalePrice, RetailPrice = q.Item.RetailPrice, StatusId = q.Item.StatusId, Used = q.Item.Used, RowId = q.Item.RowId, } : null, PrimaryUnitOfMeasure = filter.Selects.Contains(DirectSalesOrderPromotionSelect.PrimaryUnitOfMeasure) && q.PrimaryUnitOfMeasure != null ? new UnitOfMeasure { Id = q.PrimaryUnitOfMeasure.Id, Code = q.PrimaryUnitOfMeasure.Code, Name = q.PrimaryUnitOfMeasure.Name, Description = q.PrimaryUnitOfMeasure.Description, StatusId = q.PrimaryUnitOfMeasure.StatusId, Used = q.PrimaryUnitOfMeasure.Used, RowId = q.PrimaryUnitOfMeasure.RowId, } : null, UnitOfMeasure = filter.Selects.Contains(DirectSalesOrderPromotionSelect.UnitOfMeasure) && q.UnitOfMeasure != null ? new UnitOfMeasure { Id = q.UnitOfMeasure.Id, Code = q.UnitOfMeasure.Code, Name = q.UnitOfMeasure.Name, Description = q.UnitOfMeasure.Description, StatusId = q.UnitOfMeasure.StatusId, Used = q.UnitOfMeasure.Used, RowId = q.UnitOfMeasure.RowId, } : null, }).ToListAsync(); return(DirectSalesOrderPromotions); }
private IQueryable <DirectSalesOrderPromotionDAO> DynamicOrder(IQueryable <DirectSalesOrderPromotionDAO> query, DirectSalesOrderPromotionFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case DirectSalesOrderPromotionOrder.Id: query = query.OrderBy(q => q.Id); break; case DirectSalesOrderPromotionOrder.DirectSalesOrder: query = query.OrderBy(q => q.DirectSalesOrderId); break; case DirectSalesOrderPromotionOrder.Item: query = query.OrderBy(q => q.ItemId); break; case DirectSalesOrderPromotionOrder.UnitOfMeasure: query = query.OrderBy(q => q.UnitOfMeasureId); break; case DirectSalesOrderPromotionOrder.Quantity: query = query.OrderBy(q => q.Quantity); break; case DirectSalesOrderPromotionOrder.PrimaryUnitOfMeasure: query = query.OrderBy(q => q.PrimaryUnitOfMeasureId); break; case DirectSalesOrderPromotionOrder.RequestedQuantity: query = query.OrderBy(q => q.RequestedQuantity); break; case DirectSalesOrderPromotionOrder.Note: query = query.OrderBy(q => q.Note); break; case DirectSalesOrderPromotionOrder.Factor: query = query.OrderBy(q => q.Factor); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case DirectSalesOrderPromotionOrder.Id: query = query.OrderByDescending(q => q.Id); break; case DirectSalesOrderPromotionOrder.DirectSalesOrder: query = query.OrderByDescending(q => q.DirectSalesOrderId); break; case DirectSalesOrderPromotionOrder.Item: query = query.OrderByDescending(q => q.ItemId); break; case DirectSalesOrderPromotionOrder.UnitOfMeasure: query = query.OrderByDescending(q => q.UnitOfMeasureId); break; case DirectSalesOrderPromotionOrder.Quantity: query = query.OrderByDescending(q => q.Quantity); break; case DirectSalesOrderPromotionOrder.PrimaryUnitOfMeasure: query = query.OrderByDescending(q => q.PrimaryUnitOfMeasureId); break; case DirectSalesOrderPromotionOrder.RequestedQuantity: query = query.OrderByDescending(q => q.RequestedQuantity); break; case DirectSalesOrderPromotionOrder.Note: query = query.OrderByDescending(q => q.Note); break; case DirectSalesOrderPromotionOrder.Factor: query = query.OrderByDescending(q => q.Factor); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }