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

            // get supermarket
            var supermarketFromRepo = _supermarketRepository.GetSupermarketById(supermarketId);

            if (supermarketFromRepo == null)
            {
                return(NotFound());
            }

            //map data
            var supermarket = Mapper.Map <SupermarketDTO>(supermarketFromRepo);

            // create links
            var links = CreateLinksForSupermarket(supermarketId, fields);

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

            linkedResourceToReturn.Add("links", links);

            // return data
            return(Ok(linkedResourceToReturn));
        }