public ActionResult StepFour(StepFourModel model) { if (DataSettingsHelper.SiteIsInstalled) return RedirectToAction("index", "home"); if (!DataSettingsHelper.DatabaseIsInstalled) return RedirectToRoute("Install"); // Load the local settings var manager = new DataSettingsManager(); var settings = manager.LoadSettings(); // Ensure the form is valid if (ModelState.IsValid) { var siteOwner = settings.SiteOwner; siteOwner.DisplayName = model.DisplayName; siteOwner.Email = model.Email; siteOwner.UserName = SeoExtensions.GetSeoName(model.UserName); // Install the rest of the site data var installService = EngineContext.Current.Resolve<IInstallService>(); installService.InstallUserData(siteOwner, model.MailFromDisplayName, model.MailFromEmail, model.MailHost, model.MailPort, model.MailUsername, model.MailPassword, model.TwitterAccessToken, model.TwitterAccessTokenSecret); // Clear our the site owner data from the settings file settings.InstallComplete = true; settings.SiteOwner = null; manager.SaveSettings(settings); // Restart the application var webHelper = EngineContext.Current.Resolve<IWebHelper>(); webHelper.RestartAppDomain(); // Redirect home return RedirectToAction("index", "home"); } model = PrepareStepFourModel(model); return View(model); }
private StepFourModel PrepareStepFourModel(StepFourModel model = null, User siteOwner = null) { if (model == null) { model = new StepFourModel { MailHost = "localhost", MailPort = 21 }; } if (siteOwner != null) { model.AuthenticationMethod = siteOwner.PrimaryAuthMethod.ToString(); model.DisplayName = siteOwner.DisplayName; model.Email = siteOwner.Email; model.UserName = siteOwner.UserName; } return model; }