public async Task <IActionResult> GetInventories([FromQuery] InventoryParams inventoryParams)
        {
            var inventories = await _repo.GetInventories(inventoryParams);

            var inventoriesToReturn = _mapper.Map <IEnumerable <InventoryForListDto> >(inventories);

            Response.AddPagination(inventories.CurrentPage, inventories.PageSize,
                                   inventories.TotalCount, inventories.TotalPages);

            return(Ok(inventoriesToReturn));
        }
Esempio n. 2
0
        public async Task <PagedList <Inventory> > GetPaginated(InventoryParams Params, int?userCommodityId, int?StateId)
        {
            var entities = from f in  Context.Inventories select f;

            entities = StateId == null ? entities : entities.Where(c => c.stateId == StateId);

            entities = userCommodityId == null ? entities : entities.Where(c => c.EOP.CommodityId == userCommodityId);
            entities = entities.OrderByDescending(u => u.Id).AsQueryable();



            return(await PagedList <Inventory> .CreateAsync(entities, Params.PageNumber, Params.PageSize));
        }
        protected void CreateSubParams()
        {
            SubParams.Clear();
            var health = MainElement.GetChildElement("health");

            if (health != null)
            {
                Health = new HealthParams(health, this);
                SubParams.Add(Health);
            }
            // TODO: support for multiple ai elements?
            var ai = MainElement.GetChildElement("ai");

            if (ai != null)
            {
                AI = new AIParams(ai, this);
                SubParams.Add(AI);
            }
            foreach (var element in MainElement.GetChildElements("bloodemitter"))
            {
                var emitter = new ParticleParams(element, this);
                BloodEmitters.Add(emitter);
                SubParams.Add(emitter);
            }
            foreach (var element in MainElement.GetChildElements("gibemitter"))
            {
                var emitter = new ParticleParams(element, this);
                GibEmitters.Add(emitter);
                SubParams.Add(emitter);
            }
            foreach (var element in MainElement.GetChildElements("damageemitter"))
            {
                var emitter = new ParticleParams(element, this);
                GibEmitters.Add(emitter);
                SubParams.Add(emitter);
            }
            foreach (var soundElement in MainElement.GetChildElements("sound"))
            {
                var sound = new SoundParams(soundElement, this);
                Sounds.Add(sound);
                SubParams.Add(sound);
            }
            foreach (var inventoryElement in MainElement.GetChildElements("inventory"))
            {
                var inventory = new InventoryParams(inventoryElement, this);
                Inventories.Add(inventory);
                SubParams.Add(inventory);
            }
        }
Esempio n. 4
0
        public async Task <IActionResult> Get([FromQuery] InventoryParams Params)
        {
            ClaimsPrincipal currentUser = _contextAccessor.HttpContext.User;


            if (currentUser.HasClaim(c => c.Type == "State"))
            {
                StateId = int.Parse(currentUser.Claims.FirstOrDefault(c => c.Type == "State").Value);
            }

            if (currentUser.HasClaim(c => c.Type == "Commodity"))
            {
                CommodityId = int.Parse(currentUser.Claims.FirstOrDefault(c => c.Type == "Commodity").Value);
            }

            var entities = await _InventoryService.GetPaginated(Params, CommodityId, StateId);

            var entitiesToReturn = _mapper.Map <IEnumerable <InventoryForListDTO> >(entities);

            Response.AddPagination(entities.CurrentPage, entities.PageSize,
                                   entities.TotalCount, entities.TotalPages);

            return(Ok(entitiesToReturn));
        }
 public bool RemoveInventory(InventoryParams inventory) => RemoveSubParam(inventory, Inventories);
Esempio n. 6
0
        public async Task <PageList <Inventory> > GetInventories(InventoryParams inventoryParams)
        {
            var inventoriesQuery = _dbContext.Inventories
                                   .Include(i => i.Product)
                                   .Include(i => i.Location)
                                   .Include(i => i.Status)
                                   .Where(i => i.IsArchived == false)
                                   .AsQueryable();

            if (!string.IsNullOrEmpty(inventoryParams.Sku))
            {
                inventoriesQuery = inventoriesQuery.Where(i => i.Sku.Contains(inventoryParams.Sku));
            }

            if (!string.IsNullOrEmpty(inventoryParams.Product))
            {
                inventoriesQuery = inventoriesQuery.Where(i => i.Product.Name.Contains(inventoryParams.Product));
            }

            if (!string.IsNullOrEmpty(inventoryParams.Location))
            {
                inventoriesQuery = inventoriesQuery.Where(i => i.Location.Name.Contains(inventoryParams.Location));
            }

            if (inventoryParams.Status > 0)
            {
                inventoriesQuery = inventoriesQuery.Where(i => i.Status.Id == inventoryParams.Status);
            }


            //Check the Sort Direction and Property
            if (string.Equals(inventoryParams.Direction, "ASC"))
            {
                switch (inventoryParams.OrderBy.ToLower())
                {
                case "location":
                    inventoriesQuery = inventoriesQuery.OrderBy(i => i.Location.Name)
                                       .ThenBy(i => i.Product.Name).ThenBy(i => i.Status.Status);
                    break;

                case "product":
                    inventoriesQuery = inventoriesQuery.OrderBy(i => i.Product.Name)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Status.Status);
                    break;

                case "sku":
                    inventoriesQuery = inventoriesQuery.OrderBy(i => i.Sku)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Status.Status);
                    break;

                case "quantity":
                    inventoriesQuery = inventoriesQuery.OrderBy(i => i.Quantity)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Product.Name);
                    break;

                case "status":
                    inventoriesQuery = inventoriesQuery.OrderBy(i => i.Status.Status)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Product.Name);
                    break;

                default:
                    inventoriesQuery = inventoriesQuery.OrderBy(i => i.Location.Name)
                                       .ThenBy(i => i.Product.Name).ThenBy(i => i.Status.Status);
                    break;
                }
            }
            else
            {
                switch (inventoryParams.OrderBy.ToLower())
                {
                case "location":
                    inventoriesQuery = inventoriesQuery.OrderByDescending(i => i.Location.Name)
                                       .ThenBy(i => i.Product.Name).ThenBy(i => i.Status.Status);
                    break;

                case "product":
                    inventoriesQuery = inventoriesQuery.OrderByDescending(i => i.Product.Name)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Status.Status);
                    break;

                case "sku":
                    inventoriesQuery = inventoriesQuery.OrderByDescending(i => i.Sku)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Status.Status);
                    break;

                case "quantity":
                    inventoriesQuery = inventoriesQuery.OrderByDescending(i => i.Quantity)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Product.Name);
                    break;

                case "status":
                    inventoriesQuery = inventoriesQuery.OrderByDescending(i => i.Status.Status)
                                       .ThenBy(i => i.Location.Name).ThenBy(i => i.Product.Name);
                    break;

                default:
                    inventoriesQuery = inventoriesQuery.OrderByDescending(i => i.Location.Name)
                                       .ThenBy(i => i.Product.Name).ThenBy(i => i.Status.Status);
                    break;
                }
            }


            return(await PageList <Inventory> .CreateAsync(inventoriesQuery, inventoryParams.PageNumber, inventoryParams.PageSize));
        }
Esempio n. 7
0
        public async Task <PagedList <Inventory> > GetInventories(InventoryParams inventoryParams)
        {
            var inventories = _context.Inventories.OrderByDescending(p => p.Id).AsQueryable();

            return(await PagedList <Inventory> .CreateAsync(inventories, inventoryParams.PageNumber, inventoryParams.PageSize));
        }