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