Beispiel #1
0
        public ActionResult Edit(StoreFront storeFront, bool?createDefaultConfig, int?themeId, bool?populateProducts, bool?populateDiscounts, bool?populatePages)
        {
            if ((storeFront.CurrentConfigOrAny() == null) && !(createDefaultConfig ?? false) && (populatePages ?? false))
            {
                ModelState.AddModelError("createDefaultConfig", "You must select check the Create Default Configuration box when using Load Simple Sample Pages");
            }
            if ((storeFront.CurrentConfigOrAny() == null) && !(createDefaultConfig ?? false) && (populateProducts ?? false))
            {
                ModelState.AddModelError("createDefaultConfig", "You must select check the Create Default Configuration box when using Load Sample Products");
            }
            if (ModelState.IsValid)
            {
                IGstoreDb db = GStoreDb;
                storeFront.UpdateAuditFields(CurrentUserProfileOrThrow);
                storeFront = db.StoreFronts.Update(storeFront);
                db.SaveChanges();

                if (createDefaultConfig.HasValue && createDefaultConfig.Value)
                {
                    ActionResult configResult = CreateConfig(storeFront.StoreFrontId, themeId);
                }

                if (storeFront.CurrentConfigOrAny() != null)
                {
                    StoreFrontConfiguration config = storeFront.CurrentConfigOrAny();
                    if (!config.StoreFrontFoldersAllExist(Request.ApplicationPath, Server))
                    {
                        config.CreateStoreFrontFolders(Request.ApplicationPath, Server);
                        AddUserMessage("Store Front Folders Sync'd", "Store Front Folder sync'd or created for StoreFront '" + config.Name.ToHtml() + "' [" + storeFront.StoreFrontId + "] for client '" + storeFront.Client.Name.ToHtml() + "' [" + storeFront.ClientId + "]", UserMessageType.Success);
                    }
                }
                AddUserMessage("Store Front Updated", "Store Front [" + storeFront.StoreFrontId + "] for client '" + storeFront.Client.Name.ToHtml() + "' [" + storeFront.ClientId + "] was updated successfully!", UserMessageType.Success);

                if (populateDiscounts ?? false)
                {
                    db.CreateSeedDiscounts(storeFront);
                    AddUserMessage("Populated Discounts", "Sample Discounts are Loaded", UserMessageType.Success);
                }
                if (populateProducts ?? false)
                {
                    if (storeFront.CurrentConfigOrAny() == null)
                    {
                        AddUserMessage("Could not Populate Products", "Could not populate products. Store Front does not have an active configuration", UserMessageType.Danger);
                    }
                    else
                    {
                        db.CreateSeedProducts(storeFront.CurrentConfigOrAny());
                        AddUserMessage("Populated Products", "Sample Products, Bundles, and Categories are Loaded", UserMessageType.Success);
                    }
                }
                if (populatePages ?? false)
                {
                    if (storeFront.CurrentConfigOrAny() == null)
                    {
                        AddUserMessage("Could not Populate Pages", "Could not populate Pages. Store front does not have an active configuration", UserMessageType.Danger);
                    }
                    else
                    {
                        db.CreateSeedPages(storeFront.CurrentConfigOrAny());
                        AddUserMessage("Populated Pages", "Simple Pages with Menu Links are Loaded", UserMessageType.Success);
                    }
                }

                return(RedirectToAction("Index"));
            }

            this.BreadCrumbsFunc = htmlHelper => this.StoreFrontBreadcrumb(htmlHelper, storeFront.ClientId, storeFront, false);
            return(View(storeFront));
        }