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)); }
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); } }
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);
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)); }
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)); }