Example #1
0
        public ActionResult Add()
        {
            if (!_workContext.CurrentCustomer.IsSeller())
            {
                return(RedirectToRoute("HomePage"));
            }
            if (_workContext.CurrentCustomer.UserMiniSite != null)
            {
                return(RedirectToAction("MainSetup"));
            }
            var    model        = new MiniSiteActivationModel();
            string templatePath = Server.MapPath("~/Content/MiniSite/Templates");

            string[] templates = Directory.GetDirectories(templatePath);
            var      names     = templates.Select(x => x.Substring(x.LastIndexOf(@"\") + 1, x.Length - x.LastIndexOf(@"\") - 1)).ToList();

            model.AviableCssTemplate = names;
            return(View(model));
        }
Example #2
0
        public ActionResult Add(MiniSiteActivationModel model)
        {
            if (!_workContext.CurrentCustomer.IsRegistered())
            {
                return(RedirectToRoute("HomePage"));
            }

            if (_workContext.CurrentCustomer.UserMiniSite != null && _workContext.CurrentCustomer.UserMiniSite.Active)
            {
                return(RedirectToAction("MainSetup"));
            }
            else
            {
                if (_workContext.CurrentCustomer.UserMiniSite != null)
                {
                    return(RedirectToAction("MyProfile", "Customer"));
                }
            }

            if (!String.IsNullOrEmpty(model.DomainName) && model.UseSecondLavelDomain)
            {
                if (!Regex.IsMatch(model.DomainName, @"^[a-z|A-Z|0-9][a-z|A-Z|0-9|-]+[a-z|A-Z|0-9]$"))
                {
                    ModelState.AddModelError("DomainName", _localizationService.GetResource("Etf.Domain.Invalid"));
                }
                //model.DomainName = model.DomainName.Replace("http:\\", "");
                //model.DomainName = model.DomainName.Replace("https:\\", "");
                //model.DomainName = model.DomainName.Replace("\\", "");
                //model.DomainName = model.DomainName.Replace("/", "");
            }

            if (!String.IsNullOrEmpty(model.OwnDomain) && !model.UseSecondLavelDomain)
            {
                if (!ValidateDomain(model.OwnDomain))
                {
                    ModelState.AddModelError("OwnDomain", _localizationService.GetResource("Etf.Domain.Invalid"));
                }
                //model.OwnDomain = model.OwnDomain.Replace("http:\\", "");
                //model.OwnDomain = model.OwnDomain.Replace("https:\\", "");
                //model.OwnDomain = model.OwnDomain.Replace("\\", "");
                //model.OwnDomain = model.OwnDomain.Replace("/", "");
            }
            string domainName = model.UseSecondLavelDomain ? model.DomainName + "." + (new Uri(_storeInformationSettings.StoreUrl).Host) : model.OwnDomain;

            if (!String.IsNullOrEmpty(domainName))
            {
                domainName = domainName.ToLower();
                var miniSite = _miniSiteService.GetMiniSiteByDomain(domainName);
                if (miniSite != null && miniSite.Customer.Id != _workContext.CurrentCustomer.Id)
                {
                    ModelState.AddModelError("DomainName", "Minisite with specified domain name already exists");
                }
            }

            if (ModelState.IsValid)
            {
                var UserMiniSite = new UserMiniSite();
                UserMiniSite.Active                     = false;
                UserMiniSite.DomainName                 = domainName.Replace("www.", "");
                UserMiniSite.LayoutId                   = model.LayoutTemplateId;
                UserMiniSite.Customer                   = _workContext.CurrentCustomer;
                UserMiniSite.MiniSiteLayout             = new MiniSiteLayout();
                UserMiniSite.MiniSiteLayout.StyleFolder = UserMiniSite.Customer.Username;
                UserMiniSite.MiniSiteLayout.CssTemplate = model.CssTemplateName;
                string MiniSitePath = Server.MapPath("~/Content/MiniSite");
                Directory.CreateDirectory(MiniSitePath + @"\" + UserMiniSite.Customer.Username);
                System.IO.File.Copy(MiniSitePath + @"\Templates\" + model.CssTemplateName + @"\images\logo.png", MiniSitePath + @"\" + UserMiniSite.Customer.Username + @"\logo.jpg", true);
                _miniSiteService.InsertMiniSite(UserMiniSite);

                _miniSiteEmailSender.SendMiniSiteActivationEmail(UserMiniSite.Id, _languageService.GetAllLanguages()
                                                                 .Where(x => x.UniqueSeoCode == "ru")
                                                                 .FirstOrDefault().Id);

                model.Success = true;
            }
            string templatePath = Server.MapPath("~/Content/MiniSite/Templates");

            string[] templates = Directory.GetDirectories(templatePath);
            var      names     = templates.Select(x => x.Substring(x.LastIndexOf(@"\") + 1, x.Length - x.LastIndexOf(@"\") - 1)).ToList();

            model.AviableCssTemplate = names;
            return(View(model));
        }