Beispiel #1
0
        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"));
        }
Beispiel #2
0
        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"));
        }