public async Task <ActionResult> SiteInfo(SiteBasicSettingsViewModel model) { // can only delete from server admin site/cannot delete server admin site if (siteManager.CurrentSite.IsServerAdminSite) { if (model.SiteGuid != siteManager.CurrentSite.SiteGuid) { model.ShowDelete = uiOptions.AllowDeleteChildSites; } } if (!ModelState.IsValid) { return(View(model)); } if (model.SiteGuid == Guid.Empty) { this.AlertDanger("oops something went wrong, site was not found.", true); return(RedirectToAction("Index")); } //model.SiteId = Site.SiteSettings.SiteId; //model.SiteGuid = Site.SiteSettings.SiteGuid; ISiteSettings selectedSite = null; if (model.SiteGuid == siteManager.CurrentSite.SiteGuid) { selectedSite = siteManager.CurrentSite; ViewData["Title"] = "Site Settings"; } else if (siteManager.CurrentSite.IsServerAdminSite) { selectedSite = await siteManager.Fetch(model.SiteGuid); ViewData["Title"] = string.Format(CultureInfo.CurrentUICulture, "{0} - Settings", selectedSite.SiteName); } if (selectedSite == null) { this.AlertDanger("oops something went wrong.", true); return(RedirectToAction("Index")); } if (multiTenantOptions.Mode == MultiTenantMode.FolderName) { if ( ((model.SiteFolderName == null) || (model.SiteFolderName.Length == 0)) && (!selectedSite.IsServerAdminSite) ) { // only the server admin site can be without a folder ModelState.AddModelError("foldererror", "Folder name is required."); return(View(model)); } ISiteFolder folder = await siteManager.GetSiteFolder(model.SiteFolderName); if ((folder != null) && (folder.SiteGuid != selectedSite.SiteGuid)) { ModelState.AddModelError("foldererror", "The selected folder name is already in use on another site."); return(View(model)); } } else if (multiTenantOptions.Mode == MultiTenantMode.HostName) { ISiteHost host; if (!string.IsNullOrEmpty(model.HostName)) { model.HostName = model.HostName.Replace("https://", string.Empty).Replace("http://", string.Empty); host = await siteManager.GetSiteHost(model.HostName); if (host != null) { if (host.SiteGuid != selectedSite.SiteGuid) { ModelState.AddModelError("hosterror", "The selected host/domain name is already in use on another site."); return(View(model)); } } else { bool hostResult = await siteManager.AddHost( selectedSite.SiteGuid, selectedSite.SiteId, model.HostName); } } selectedSite.PreferredHostName = model.HostName; } selectedSite.SiteName = model.SiteName; selectedSite.TimeZoneId = model.TimeZoneId; selectedSite.SiteFolderName = model.SiteFolderName; selectedSite.SiteIsClosed = model.IsClosed; selectedSite.SiteIsClosedMessage = model.ClosedMessage; if (layoutOptions.SelectionMode == LayoutSelectionMode.Browsing) { selectedSite.Layout = model.Layout; } bool result = await siteManager.Save(selectedSite); if ((result) && (multiTenantOptions.Mode == MultiTenantMode.FolderName)) { if (!string.IsNullOrEmpty(selectedSite.SiteFolderName)) { bool folderEnsured = await siteManager.EnsureSiteFolder(selectedSite); } } if (result) { this.AlertSuccess(string.Format("Basic site settings for <b>{0}</b> were successfully updated.", selectedSite.SiteName), true); } if ((siteManager.CurrentSite.IsServerAdminSite) //&&(Site.SiteSettings.SiteGuid != selectedSite.SiteGuid) ) { // just edited from site list so redirect there return(RedirectToAction("SiteList", new { pageNumber = model.ReturnPageNumber })); } return(RedirectToAction("Index")); }