public void InstallDefaultSite() { // temporary implementation, it will be based on site templates // and possibly moved to an infrastructure service if (_siteRepository.GetByName("Default") != null) { return; } var siteId = Guid.NewGuid(); var englishLanguageId = Guid.NewGuid(); var mainMenuId = Guid.NewGuid(); var homePageId = Guid.NewGuid(); // ===== Site ===== // var site = Site.CreateNew(new CreateSite { Id = siteId, Name = "Default" }, _createSiteValidator); _siteRepository.Create(site); // ===== Languages ===== // var language = Language.CreateNew(new CreateLanguage { SiteId = siteId, Id = englishLanguageId, Name = "English", CultureName = "en", Url = "en" }, _createLanguageValidator, _languageSortOrderGenerator); _languageRepository.Create(language); // ===== Pages ===== // var homePage = Page.CreateNew(new CreatePage { SiteId = siteId, Id = homePageId, Name = "Home", Url = "home", PageLocalisations = new List <PageLocalisation> { new PageLocalisation { LanguageId = englishLanguageId } }, PagePermissions = new List <PagePermission> { new PagePermission { RoleId = ((int)DefaultRoles.Everyone).ToString(), Type = PermissionType.View } } }, _createPageValidator); homePage.Activate(new ActivatePage { SiteId = siteId, Id = homePageId }, _activatePageValidator); _pageRepository.Create(homePage); // ===== Modules ===== // var textModuleType = _moduleTypeRepository.GetByName("Text"); // Content Zone Module var contentModuleId = Guid.NewGuid(); var contentModule = Module.CreateNew(new CreateModule { SiteId = siteId, ModuleTypeId = textModuleType.Id, Id = contentModuleId, Title = "Content Module" }, _createModuleValidator); _moduleRepository.Create(contentModule); // Left Zone Module var leftModuleId = Guid.NewGuid(); var leftModule = Module.CreateNew(new CreateModule { SiteId = siteId, ModuleTypeId = textModuleType.Id, Id = leftModuleId, Title = "Left Module" }, _createModuleValidator); _moduleRepository.Create(leftModule); // Right Zone Module var rightModuleId = Guid.NewGuid(); var rightModule = Module.CreateNew(new CreateModule { SiteId = siteId, ModuleTypeId = textModuleType.Id, Id = rightModuleId, Title = "Right Module" }, _createModuleValidator); _moduleRepository.Create(rightModule); // Update Home Page homePage.AddModule(new AddPageModule { SiteId = siteId, PageId = homePageId, ModuleId = contentModuleId, Id = Guid.NewGuid(), Title = "Content", Zone = "Content", SortOrder = 1 }, _addPageModuleValidator); homePage.AddModule(new AddPageModule { SiteId = siteId, PageId = homePageId, ModuleId = leftModuleId, Id = Guid.NewGuid(), Title = "Left", Zone = "Left", SortOrder = 1 }, _addPageModuleValidator); homePage.AddModule(new AddPageModule { SiteId = siteId, PageId = homePageId, ModuleId = rightModuleId, Id = Guid.NewGuid(), Title = "Right", Zone = "Right", SortOrder = 1 }, _addPageModuleValidator); _pageRepository.Update(homePage); // ===== Menus ===== // var mainMenu = Menu.CreateNew(new CreateMenu { SiteId = siteId, Id = mainMenuId, Name = "Main" }, _createMenuValidator); mainMenu.AddMenuItem(new AddMenuItem { SiteId = siteId, MenuId = mainMenuId, MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Page, PageId = homePageId, Link = string.Empty, Text = "Home", Title = "Home Page", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = englishLanguageId } } }, _addMenuItemValidator); _menuRepository.Create(mainMenu); }