public ActionResult <string> UpdateProduct(int id, [FromBody] ProductParam productParam)
        {
            try
            {
                var db      = new ShowcaseDatabase.ShowcaseDatabase();
                var product = db.Products.FirstOrDefault(p => p.Id == id);
                if (product == null)
                {
                    return(_apiError.ProductNotFound);
                }

                product.ProductName = productParam.ProductName ?? product.ProductName;
                product.Price       = productParam.Price <= 0 ? product.Price : productParam.Price;
                product.Description = productParam.Description ?? product.Description;
                product.Count       = productParam.Count < 0 ? product.Count : productParam.Count;
                product.CompanyId   = productParam.CompanyId <= 0 ? product.CompanyId : productParam.CompanyId;
                product.CategoryId  = productParam.CategoryId <= 0 ? product.CategoryId : productParam.CategoryId;

                db.SaveChanges();

                return(Ok(new { Message = "Продукт успешно обновлён" }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
        public ActionResult <string> AddProduct([FromBody] ProductParam product)
        {
            try
            {
                var db         = new ShowcaseDatabase.ShowcaseDatabase();
                var newProduct = new Product
                {
                    ProductName = product.ProductName,
                    Price       = product.Price,
                    Description = product.Description,
                    CompanyId   = product.CompanyId,
                    Count       = product.Count,
                    CategoryId  = product.CategoryId
                };
                db.Products.Add(newProduct);
                db.SaveChanges();

                return(Ok(new { newProduct.Id }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
        public async Task <ActionResult <string> > UploadProductImage(int id)
        {
            try
            {
                var file               = Request.Form.Files[0];
                var extensionFile      = file.ContentType.Split("/")[1];
                var acceptContentTypes = new List <string>
                {
                    EContentType.ImagePng, EContentType.ImageJpg, EContentType.ImageJpeg
                };
                var filePath =
                    $"{Config.GetSection("StaticPathImage").Value}/products/product_image_{id}.{extensionFile}";

                if (Request.Form.Files.Count != 1)
                {
                    return(_apiError.IncorrectCountImageFile);
                }
                if (!acceptContentTypes.Contains(file.ContentType))
                {
                    return(_apiError.IncorrectContentTypeFile);
                }

                using (var stream = new FileStream(filePath, FileMode.Create))
                    await file.CopyToAsync(stream);

                var db      = new ShowcaseDatabase.ShowcaseDatabase();
                var product = db.Products.FirstOrDefault(p => p.Id == id);
                if (product == null)
                {
                    return(_apiError.ProductNotFound);
                }

                product.ImagePath = filePath;
                db.SaveChanges();

                return(Ok(new { Message = "Картинка успешно обновлена" }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
        public ActionResult <string> DeleteProduct(int id)
        {
            try
            {
                var db      = new ShowcaseDatabase.ShowcaseDatabase();
                var product = db.Products.FirstOrDefault(p => p.Id == id);
                if (product == null)
                {
                    return(_apiError.ProductNotFound);
                }

                db.Products.Remove(product);
                db.SaveChanges();

                return(Ok(new { Message = "Продукт упешно удалён" }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }