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);
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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);
        }