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); }