public void Setup(SetupView setup)
{
if (Database.Users.Any())
{
throw new InvalidOperationException("The site has already been setup.");
}
var accountService = new AccountService(Database, AuthenticationService);
var account = new Account
{
EmailAddress = setup.EmailAddress,
UserName = setup.UserName,
Password = setup.Password
};
var userSettings = accountService.Register(account);
userSettings.User.Tags = ",Administrator,";
Database.SaveChanges();
AuthenticationService.LogIn(userSettings.User, true);
Database.SaveChanges();
var siteSettings = SiteSettings.Load(Database);
setup.ContactEmail = userSettings.User.EmailAddress;
siteSettings.Apply(setup);
siteSettings.Save();
Database.SaveChanges();
MvcApplication.IsConfigured = true;
}