public async Task <int> CreatorUpdateItem(ReferenceItem item, List <ReferenceLabel> labels)
        {
            if (item.Id == 0)
            {
                db.ReferenceItem.Add(item);
                await db.SaveChangesAsync();

                labels = CheckLabels(labels, item.Id);
                foreach (ReferenceLabel label in labels)
                {
                    db.ReferenceLabel.Add(label);
                }
            }
            else
            {
                db.ReferenceItem.Update(item);

                labels = CheckLabels(labels, item.Id);
                foreach (ReferenceLabel label in labels)
                {
                    db.ReferenceLabel.Update(label);
                }
            }

            await db.SaveChangesAsync();

            return(1);
        }
        public async Task <int> SaveProduct(Product product, List <IFormFile> images, List <ReferenceLabel> labels)
        {
            string imagesPath = "images/" + product.ReferenceItem.Code + "/";

            if (!Directory.Exists(imagesPath))
            {
                Directory.CreateDirectory(imagesPath);
            }

            if (product.Id == 0)
            {
                context.ReferenceItem.Add(product.ReferenceItem);
                await context.SaveChangesAsync();

                product.ReferenceItemId = product.ReferenceItem.Id;
                context.Product.Add(product);
                await context.SaveChangesAsync();

                labels = _referencRepository.CheckLabels(labels, product.ReferenceItemId);
                foreach (ReferenceLabel label in labels)
                {
                    context.ReferenceLabel.Add(label);
                }
            }
            else
            {
                context.Product.Update(product);

                labels = _referencRepository.CheckLabels(labels, product.ReferenceItemId);
                foreach (ReferenceLabel label in labels)
                {
                    context.ReferenceLabel.Update(label);
                }
            }

            foreach (IFormFile image in images)
            {
                if (await SaveImage(image, imagesPath))
                {
                    context.ProductPhotoPath.Add(
                        new ProductPhotoPath
                    {
                        Path      = product.ReferenceItem.Code + "/" + image.FileName,
                        ProductId = product.Id
                    }
                        );
                }
            }
            await context.SaveChangesAsync();

            return(1);
        }