public async Task <IActionResult> PutCatalog([FromRoute] int id, [FromBody] CatalogDTO catalogDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != catalogDTO.CatalogId)
            {
                return(BadRequest());
            }

            var catalog = await catalogRepository.Edit(id, catalogDTO);

            if (catalog == null)
            {
                return(BadRequest());
            }

            CatalogDTO dto = new CatalogDTO();

            dto.CatalogId          = catalog.CatalogId;
            dto.Date               = catalog.Date;
            dto.CatalogDescription = catalog.CatalogDescription;
            dto.CatalogName        = catalog.CatalogName;
            dto.products           = new List <ProductDTO>();
            foreach (CatalogProduct cp in catalog.CatalogProducts)
            {
                ProductDTO pdto = productToDTO(cp.Product);
                dto.products.Add(pdto);
            }

            return(Ok(dto));
        }