Example #1
0
        /// <inheritdoc/>
        public async Task SetRequestCompletedAsync(int requestId)
        {
            var dbRequests = await _context.Requests.Where(r => r.Id == requestId).ToArrayAsync();

            if (dbRequests.Length == 0)
            {
                throw new RequestedResourceNotFoundException();
            }

            var dbRequest = dbRequests[0];

            if (dbRequest.Completed)
            {
                throw new RequestedResourceHasConflictException();
            }

            dbRequest.Completed = true;

            var storeItems = await _productStoreService.GetProductStoreItemsAsync(dbRequest.ProductId, dbRequest.HiveSectionId);

            if (storeItems.Count == 0)
            {
                await _productStoreService.CreateProductStoreItemAsync(Mapper.Map <UpdateProductStoreItemRequest>(dbRequest));
            }
            else
            {
                var updateRequest = Mapper.Map <UpdateProductStoreItemRequest>(storeItems[0]);
                updateRequest.Quantity += dbRequest.Quantity;
                await _productStoreService.UpdateProductStoreItemAsync(storeItems[0].Id, updateRequest);
            }

            await _context.SaveChangesAsync();
        }
Example #2
0
        public async Task <IHttpActionResult> GetProductStoreItems([FromUri] int hiveSectionId)
        {
            var productStoreItems = await _productStoreService.GetProductStoreItemsAsync(hiveSectionId);

            return(Ok(productStoreItems));
        }