public async Task <ApiResponse> Handle(AddInventoryItemsCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { StoreInventoryItem obj = _mapper.Map <StoreInventoryItem>(request); obj.IsDeleted = false; await _dbContext.InventoryItems.AddAsync(obj); await _dbContext.SaveChangesAsync(); response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception e) { response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + e.Message; return(response); } return(response); }
public async Task <StatusCodeResult> Put(string code, string sku, [FromBody] StoreInventoryItemUpdateRequest update) { Store store = await FindOrCreateStoreAsync(code); InventoryItem item = await FindOrCreateInventoryItemAsync(sku); StoreInventoryItem storeInventoryItem = await FindOrCreateStockInventoryItemAsync(store, item); storeInventoryItem.Available = update.Available; await _context.SaveChangesAsync(); return(Ok()); }
private async Task <StoreInventoryItem> FindOrCreateStockInventoryItemAsync(Store store, InventoryItem item) { StoreInventoryItem storeInventoryItem = await _context.StoreInventoryItem.SingleOrDefaultAsync(x => x.Store == store.Id && x.Item == item.Id); if (storeInventoryItem == null) { storeInventoryItem = new StoreInventoryItem { StoreNavigation = store, ItemNavigation = item }; _context.Attach(storeInventoryItem); await _context.SaveChangesAsync(); } return(storeInventoryItem); }
public async Task <ApiResponse> Handle(GetInventoryItemCodeQuery request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); string InventoryItemCode = ""; try { if (request.Id != 0) { StoreInventoryItem storeInventoryItem = await _dbContext.InventoryItems .OrderByDescending(x => x.CreatedDate) .Include(x => x.StoreItemGroup) .FirstOrDefaultAsync(x => x.IsDeleted == false && x.ItemGroupId == request.Id); if (storeInventoryItem != null) { int count = Convert.ToInt32(storeInventoryItem.ItemCode.Substring(7)); InventoryItemCode = storeInventoryItem.StoreItemGroup.ItemGroupCode + "-" + String.Format("{0:D2}", ++count); } else { StoreItemGroup storeItemGroup = await _dbContext.StoreItemGroups.OrderByDescending(x => x.CreatedDate).FirstOrDefaultAsync(x => x.IsDeleted == false && x.ItemGroupId == request.Id); InventoryItemCode = storeItemGroup.ItemGroupCode + "-" + String.Format("{0:D2}", 1); } } response.data.InventoryItemCode = InventoryItemCode; response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } return(response); }