public static void CreateDefaultPageTemplatesPerTeam(IConsoleRepository ConsoleRepository, TemplatedPage templatedPage, List<Team> teams, Template structureTemplate, Template holdingTemplate)
 {
     foreach (var team in teams)
     {
         SetPageTemplates(ConsoleRepository, templatedPage, structureTemplate, holdingTemplate, team);
     } 
 }
        public static void SetPageTemplates(IConsoleRepository ConsoleRepository, TemplatedPage templatedPage,
                                             Template structureTemplate, Template holdingTemplate, Team team)
        {
            var pageStructureTemplate = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = structureTemplate,
                    PageSectionId = 0
                };
            ConsoleRepository.Add<PageTemplate>(pageStructureTemplate);

            var holdingTempl_1 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 1
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_1);

            var holdingTempl_2 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 2
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_2);

            var holdingTempl_3 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 3
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_3);

            var holdingTempl_4 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 4
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_4);

            var holdingTempl_5 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 5
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_5);

            var holdingTempl_6 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 6
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_6);

            var holdingTempl_7 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 7
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_7);

            var holdingTempl_8 = new PageTemplate
                {
                    IsVisible = true,
                    Team = team,
                    TemplatedPage = templatedPage,
                    Template = holdingTemplate,
                    PageSectionId = 8
                };
            ConsoleRepository.Add<PageTemplate>(holdingTempl_8);
        }
        public TemplatedPageDto CreateTemplatedPage(TemplatedPageDto templatePageDto)
        {
            using (ConsoleRepository)
            {
                var templatedPage = ConsoleRepository.Query<TemplatedPage>().FirstOrDefault(tp => tp.PageTitle.Equals(templatePageDto.PageTitle));

                if (templatedPage != null) throw new Exception("Templated Page Already Exists");

                var newTemplatePage = new TemplatedPage
                    {
                        PageTitle = templatePageDto.PageTitle,
                        ViewModel = templatePageDto.ViewModel,
                        IsMenuLinkVisible = templatePageDto.IsMenuLinkVisible,
                        IsSeparateBrowserTab = templatePageDto.IsSeparateBrowserTab,
                    };
                // Add Templated Page
                ConsoleRepository.Add<TemplatedPage>(newTemplatePage);

                // Add Page Templates for all Teams
                var teams = ConsoleRepository.Query<Team>().ToList();
                var structureTemplate = ConsoleRepository.Query<Template>().FirstOrDefault(t => t.Title.Equals("8 Section Template"));
                var holdingTemplate = ConsoleRepository.Query<Template>().FirstOrDefault(t => t.Title.Equals("Holding Template"));

                CreateDefaultPageTemplatesPerTeam(ConsoleRepository, newTemplatePage, teams, structureTemplate, holdingTemplate);

                ConsoleRepository.SaveChanges();

                templatePageDto.Id = newTemplatePage.Id;
            }

            return templatePageDto;
        }