public async Task <IActionResult> RemoveProduce(int id, [FromBody] ProduceDto produceDTO)
        {
            var shop = await _context.Shops.FindAsync(id);

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

            if (shop.OwnerId != AuthenticatedUserId())
            {
                return(Unauthorized("Shop does not belong to you"));
            }

            var produce = await _context.Produce
                          .Where(p => p.ShopId == id && p.Name == produceDTO.Name)
                          .FirstOrDefaultAsync();

            if (produce == null)
            {
                return(BadRequest("No such produce"));
            }

            _context.Remove(produce);
            await _context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task <ActionResult <ProduceDto> > PostProduce(int id, [FromBody] ProduceDto produceDTO)
        {
            var shop = await _context.Shops.FindAsync(id);

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

            if (shop.OwnerId != AuthenticatedUserId())
            {
                return(Unauthorized("Shop does not belong to you"));
            }

            if (_context.Produce.Any(p => p.ShopId == id && p.Name == produceDTO.Name))
            {
                return(BadRequest("Produce with same name already in shop"));
            }

            var produce = _mapper.Map <Produce>(produceDTO);

            produce.ShopId = id;

            await _context.Produce.AddAsync(produce);

            await _context.SaveChangesAsync();

            return(_mapper.Map <ProduceDto>(produce));
        }