Exemplo n.º 1
0
        public async Task <WarehouseProductViewModel> GetByWarehouseId(int warehouseId)
        {
            WarehouseProductViewModel     warehouseProductViewModel = new WarehouseProductViewModel();
            IQueryable <WarehouseProduct> query = Database.Set <WarehouseProduct>().Where(wp => wp.IsActive && wp.WarehouseId == warehouseId).AsQueryable();
            Func <IQueryable <WarehouseProduct>, IQueryable <WarehouseProduct> > includes = DbContextHelper.GetNavigations <WarehouseProduct>();

            query = includes(query);
            warehouseProductViewModel.WarehouseProducts = await query.ToListAsync();

            if (warehouseProductViewModel.WarehouseProducts.Count > 0)
            {
                warehouseProductViewModel.UsedCapacity = query.GroupBy(o => o.WarehouseId).Select(g => new { key = g.Key, total = g.Sum(i => i.Count) }).FirstOrDefault().total;
            }

            return(warehouseProductViewModel);
        }
Exemplo n.º 2
0
        public async Task <int> GetRemainingCapacityByWarehouseId(int warehouseId)
        {
            Warehouse warehouse = await warehouseRepository.GetById(warehouseId);

            WarehouseProductViewModel     warehouseProductViewModel = new WarehouseProductViewModel();
            IQueryable <WarehouseProduct> query = Database.Set <WarehouseProduct>().Where(wp => wp.IsActive && wp.WarehouseId == warehouseId).AsQueryable();

            warehouseProductViewModel.WarehouseProducts = await query.ToListAsync();

            if (warehouseProductViewModel.WarehouseProducts.Count > 0)
            {
                warehouseProductViewModel.UsedCapacity = query.GroupBy(o => o.WarehouseId).Select(g => new { key = g.Key, total = g.Sum(i => i.Count) }).FirstOrDefault().total;
            }

            int remainingCapacity = warehouse.Capacity - warehouseProductViewModel.UsedCapacity;

            return(remainingCapacity);
        }