public async Task <int> Count(InventoryHistoryFilter filter) { IQueryable <InventoryHistoryDAO> InventoryHistories = DataContext.InventoryHistory.AsNoTracking(); InventoryHistories = DynamicFilter(InventoryHistories, filter); return(await InventoryHistories.CountAsync()); }
public async Task <List <InventoryHistory> > List(InventoryHistoryFilter filter) { if (filter == null) { return(new List <InventoryHistory>()); } IQueryable <InventoryHistoryDAO> InventoryHistoryDAOs = DataContext.InventoryHistory.AsNoTracking(); InventoryHistoryDAOs = DynamicFilter(InventoryHistoryDAOs, filter); InventoryHistoryDAOs = DynamicOrder(InventoryHistoryDAOs, filter); List <InventoryHistory> InventoryHistories = await DynamicSelect(InventoryHistoryDAOs, filter); return(InventoryHistories); }
private IQueryable <InventoryHistoryDAO> OrFilter(IQueryable <InventoryHistoryDAO> query, InventoryHistoryFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <InventoryHistoryDAO> initQuery = query.Where(q => false); foreach (InventoryHistoryFilter InventoryHistoryFilter in filter.OrFilter) { IQueryable <InventoryHistoryDAO> queryable = query; if (InventoryHistoryFilter.Id != null && InventoryHistoryFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, InventoryHistoryFilter.Id); } if (InventoryHistoryFilter.InventoryId != null && InventoryHistoryFilter.InventoryId.HasValue) { queryable = queryable.Where(q => q.InventoryId, InventoryHistoryFilter.InventoryId); } if (InventoryHistoryFilter.OldSaleStock != null && InventoryHistoryFilter.OldSaleStock.HasValue) { queryable = queryable.Where(q => q.OldSaleStock, InventoryHistoryFilter.OldSaleStock); } if (InventoryHistoryFilter.SaleStock != null && InventoryHistoryFilter.SaleStock.HasValue) { queryable = queryable.Where(q => q.SaleStock, InventoryHistoryFilter.SaleStock); } if (InventoryHistoryFilter.OldAccountingStock != null && InventoryHistoryFilter.OldAccountingStock.HasValue) { queryable = queryable.Where(q => q.OldAccountingStock, InventoryHistoryFilter.OldAccountingStock); } if (InventoryHistoryFilter.AccountingStock != null && InventoryHistoryFilter.AccountingStock.HasValue) { queryable = queryable.Where(q => q.AccountingStock, InventoryHistoryFilter.AccountingStock); } if (InventoryHistoryFilter.AppUserId != null && InventoryHistoryFilter.AppUserId.HasValue) { queryable = queryable.Where(q => q.AppUserId, InventoryHistoryFilter.AppUserId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <InventoryHistoryDAO> DynamicFilter(IQueryable <InventoryHistoryDAO> query, InventoryHistoryFilter filter) { if (filter == null) { return(query.Where(q => false)); } query = query.Where(q => !q.DeletedAt.HasValue); if (filter.Id != null && filter.Id.HasValue) { query = query.Where(q => q.Id, filter.Id); } if (filter.InventoryId != null && filter.InventoryId.HasValue) { query = query.Where(q => q.InventoryId, filter.InventoryId); } if (filter.OldSaleStock != null && filter.OldSaleStock.HasValue) { query = query.Where(q => q.OldSaleStock, filter.OldSaleStock); } if (filter.SaleStock != null && filter.SaleStock.HasValue) { query = query.Where(q => q.SaleStock, filter.SaleStock); } if (filter.OldAccountingStock != null && filter.OldAccountingStock.HasValue) { query = query.Where(q => q.OldAccountingStock, filter.OldAccountingStock); } if (filter.AccountingStock != null && filter.AccountingStock.HasValue) { query = query.Where(q => q.AccountingStock, filter.AccountingStock); } if (filter.AppUserId != null && filter.AppUserId.HasValue) { query = query.Where(q => q.AppUserId, filter.AppUserId); } query = OrFilter(query, filter); return(query); }
private async Task <List <InventoryHistory> > DynamicSelect(IQueryable <InventoryHistoryDAO> query, InventoryHistoryFilter filter) { List <InventoryHistory> InventoryHistories = await query.Select(q => new InventoryHistory() { Id = filter.Selects.Contains(InventoryHistorySelect.Id) ? q.Id : default(long), InventoryId = filter.Selects.Contains(InventoryHistorySelect.Inventory) ? q.InventoryId : default(long), OldSaleStock = filter.Selects.Contains(InventoryHistorySelect.OldSaleStock) ? q.OldSaleStock : default(long), SaleStock = filter.Selects.Contains(InventoryHistorySelect.SaleStock) ? q.SaleStock : default(long), OldAccountingStock = filter.Selects.Contains(InventoryHistorySelect.OldAccountingStock) ? q.OldAccountingStock : default(long), AccountingStock = filter.Selects.Contains(InventoryHistorySelect.AccountingStock) ? q.AccountingStock : default(long), AppUserId = filter.Selects.Contains(InventoryHistorySelect.AppUser) ? q.AppUserId : default(long), AppUser = filter.Selects.Contains(InventoryHistorySelect.AppUser) && q.AppUser != null ? new AppUser { Id = q.AppUser.Id, Username = q.AppUser.Username, DisplayName = q.AppUser.DisplayName, Address = q.AppUser.Address, Email = q.AppUser.Email, Phone = q.AppUser.Phone, SexId = q.AppUser.SexId, Birthday = q.AppUser.Birthday, Avatar = q.AppUser.Avatar, Department = q.AppUser.Department, OrganizationId = q.AppUser.OrganizationId, Longitude = q.AppUser.Longitude, Latitude = q.AppUser.Latitude, StatusId = q.AppUser.StatusId, RowId = q.AppUser.RowId, Used = q.AppUser.Used, } : null, Inventory = filter.Selects.Contains(InventoryHistorySelect.Inventory) && q.Inventory != null ? new Inventory { Id = q.Inventory.Id, WarehouseId = q.Inventory.WarehouseId, ItemId = q.Inventory.ItemId, SaleStock = q.Inventory.SaleStock, AccountingStock = q.Inventory.AccountingStock, } : null, }).ToListAsync(); return(InventoryHistories); }
private IQueryable <InventoryHistoryDAO> DynamicOrder(IQueryable <InventoryHistoryDAO> query, InventoryHistoryFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case InventoryHistoryOrder.Id: query = query.OrderBy(q => q.Id); break; case InventoryHistoryOrder.Inventory: query = query.OrderBy(q => q.InventoryId); break; case InventoryHistoryOrder.OldSaleStock: query = query.OrderBy(q => q.OldSaleStock); break; case InventoryHistoryOrder.SaleStock: query = query.OrderBy(q => q.SaleStock); break; case InventoryHistoryOrder.OldAccountingStock: query = query.OrderBy(q => q.OldAccountingStock); break; case InventoryHistoryOrder.AccountingStock: query = query.OrderBy(q => q.AccountingStock); break; case InventoryHistoryOrder.AppUser: query = query.OrderBy(q => q.AppUserId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case InventoryHistoryOrder.Id: query = query.OrderByDescending(q => q.Id); break; case InventoryHistoryOrder.Inventory: query = query.OrderByDescending(q => q.InventoryId); break; case InventoryHistoryOrder.OldSaleStock: query = query.OrderByDescending(q => q.OldSaleStock); break; case InventoryHistoryOrder.SaleStock: query = query.OrderByDescending(q => q.SaleStock); break; case InventoryHistoryOrder.OldAccountingStock: query = query.OrderByDescending(q => q.OldAccountingStock); break; case InventoryHistoryOrder.AccountingStock: query = query.OrderByDescending(q => q.AccountingStock); break; case InventoryHistoryOrder.AppUser: query = query.OrderByDescending(q => q.AppUserId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
public IActionResult GetInventoryHistories(long productId, [FromBody] InventoryHistoryFilter filter) { return(Ok(reportService.GetInventoryHistories(reportService.OrganisationId, productId, filter))); }