public IActionResult GetProduct(int productId, [FromQuery] string fields)
        {
            // check requested fields are valid
            if (!_typeHelperService.TypeHasProperties <ProductDTO>(fields))
            {
                return(BadRequest());
            }

            // get product
            var productFromRepo = _supermarketRepository.GetProductById(productId);

            // check product exists
            if (productFromRepo == null)
            {
                return(NotFound());
            }

            var product = Mapper.Map <ProductDTO>(productFromRepo);

            var links = CreateLinksForProduct(productId, fields);

            var linkedResourceToReturn = product.ShapeData(fields)
                                         as IDictionary <string, object>;

            linkedResourceToReturn.Add("links", links);

            return(Ok(linkedResourceToReturn));
        }
Exemplo n.º 2
0
        public RedirectToActionResult AddToBasket(int productId)
        {
            var product = _supermarketRepository.GetProductById(productId);

            _basket.AddProduct(product, 1);

            var basketLineItem = _basket.Products.FirstOrDefault(p => p.Product.Id == product.Id);

            _supermarketRepository.SaveBasketLineItem(_basket.BasketId, basketLineItem);
            return(RedirectToAction("Index", "Home"));
        }