public async Task <IActionResult> Create(CreateStoreViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var store = new StoreModel() { Name = model.Name, Description = model.Description, DateCreated = DateTime.Now, Images = new List <ImageModel>() }; foreach (var formFile in model.Images) { if (formFile.Length > 0) { var image = ImageUpload.ImageToByte(formFile); image.Store = store; store.Images.Add(image); } } await Db.Images.AddRangeAsync(store.Images); await Db.Stores.AddAsync(store); await Db.SaveChangesAsync(); return(RedirectToAction("List")); }
public async Task <IActionResult> Create(CreateProductViewModel model) { if (!ModelState.IsValid) { return(View(model)); } using (var Transaction = Db.Database.BeginTransaction()) { var product = new ProductModel() { Name = model.Name, Description = model.Description, StoreID = model.StoreID, Store = Db.Stores.Where(s => s.ID == model.StoreID).FirstOrDefault(), DateCreated = DateTime.Now, Status = ProductStatus.Available, Images = new List <ImageModel>(), Variants = new List <VariantModel>() }; foreach (var formFile in model.Images) { if (formFile.Length > 0) { var image = ImageUpload.ImageToByte(formFile); image.Product = product; product.Images.Add(image); } } await Db.Images.AddRangeAsync(product.Images); foreach (var variant in model.Variants) { var temp = new VariantModel() { Name = variant.Name, Description = variant.Description, Stock = variant.Stock, Price = variant.Price, Currency = CultureInfo.CurrentCulture, Images = new List <ImageModel>(), DateCreated = DateTime.Now }; foreach (var formFile in variant.Images) { if (formFile.Length > 0) { var image = ImageUpload.ImageToByte(formFile); image.Variant = temp; temp.Images.Add(image); } } product.Variants.Add(temp); await Db.Variants.AddAsync(temp); await Db.Images.AddRangeAsync(temp.Images); } await Db.Products.AddAsync(product); await Db.SaveChangesAsync(); Transaction.Commit(); } return(RedirectToAction("List")); }