BetterCms.Module.Installation.Models.Migrations.InitialSetup.CreateTables C# (CSharp) Method

CreateTables() private method

private CreateTables ( ) : void
return void
        private void CreateTables()
        {
            ChangeTemplatesPaths();

            #region Default Layout, Regions and Widgets

            var defaultLayout = new
            {
                Layout = new
                {

                    Id = "0E991684-003A-43DE-B40F-0FFECCDDC6EB",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    Name = "Default Better CMS Template",
                    LayoutPath = "~/Areas/bcms-installation/Views/Shared/DefaultLayout.cshtml"
                },

                Regions = new
                {
                    Header = new
                    {
                        Id = "9E1601E4-EFCD-4EBB-AE67-B2FF10E372BA",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        RegionIdentifier = "CMSHeader"
                    },

                    Main = new
                    {
                        Id = "E3E2E7FE-62DF-4BA6-8321-6FDCC1691D8A",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        RegionIdentifier = "CMSMainContent"
                    },

                    Footer = new
                    {
                        Id = "D840205E-9580-4906-B6B7-B9A48CBF8AAA",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        RegionIdentifier = "CMSFooter"
                    }
                }
            };

            var defaultLayoutRegions = new
            {
                Header = new
                {
                    Id = "3DA91AD5-D1EC-43D1-B663-7B367C04CDFE",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    LayoutId = defaultLayout.Layout.Id,
                    RegionId = defaultLayout.Regions.Header.Id
                },

                Main = new
                {
                    Id = "40F27280-057E-48DB-8787-3FACF67B98B0",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    LayoutId = defaultLayout.Layout.Id,
                    RegionId = defaultLayout.Regions.Main.Id
                },

                Footer = new
                {
                    Id = "2E7BEBD1-A92E-4D26-B728-239F007F5685",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    LayoutId = defaultLayout.Layout.Id,
                    RegionId = defaultLayout.Regions.Footer.Id
                }
            };

            var widgets = new
            {
                Logo = new
                {
                    ForRootSchemaContentTable = new
                    {
                        Id = "AFA0AFEF-6D71-4962-9EF4-324BB9344F92",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        Name = "Header Logo",
                        Status = 3,
                        PublishedOn = DateTime.Now,
                        PublishedByUser = "Better CMS"
                    },

                    ForRootScemaWidgetsTable = new
                    {
                        Id = "AFA0AFEF-6D71-4962-9EF4-324BB9344F92",
                    },

                    ForPagesSchemaHtmlContentWidgetsTable = new
                    {
                        Id = "AFA0AFEF-6D71-4962-9EF4-324BB9344F92",
                        UseCustomCss = false,
                        UseCustomJs = false,
                        Html =
                            "<a href=\"/\" class=\"bcms-logo\"><img src=\"/file/bcms-pages/content/styles/images/logo.png\" alt=\"Better CMS\"></a>",
                        UseHtml = true,
                        EditInSourceMode = false
                    }
                },

                Copyright = new
                {
                    ForRootSchemaContentTable = new
                    {
                        Id = "F4A92939-61C1-4E83-9576-42753B8FC15E",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        Name = "Footer Copyright",
                        Status = 3,
                        PublishedOn = DateTime.Now,
                        PublishedByUser = "Better CMS"
                    },

                    ForRootScemaWidgetsTable = new
                    {
                        Id = "F4A92939-61C1-4E83-9576-42753B8FC15E",
                    },

                    ForPagesSchemaHtmlContentWidgetsTable = new
                    {
                        Id = "F4A92939-61C1-4E83-9576-42753B8FC15E",
                        UseCustomCss = false,
                        UseCustomJs = false,
                        Html =
                            string.Format(
                                "<span class=\"copyright\">Better CMS {0} ©</span>",
                                DateTime.Now.Year),
                        UseHtml = true,
                        EditInSourceMode = false
                    }
                }
            };

            #endregion

            #region Page 404

            var page404 = new
            {
                ForRootSchema = new
                {
                    Id = "468CB682-E1C4-4876-84A5-6A355A92DC55",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PublishedOn = DateTime.Now,
                    LayoutId = defaultLayout.Layout.Id,
                    PageUrl = FixUrl("/404/"),
                    Title = "Page Not Found",
                    Status = (int)PageStatus.Published,
                    MetaTitle = "Page Not Found",
                    MetaDescription = "A page was not found.",
                    MetaKeywords = "Better CMS"
                },

                ForPagesSchema = new
                {
                    Id = "468CB682-E1C4-4876-84A5-6A355A92DC55",
                    Description = "A page was not found.",
                    UseCanonicalUrl = false,
                    UseNoFollow = true,
                    UseNoIndex = true,
                    NodeCountInSitemap = 0
                },

                Content = new
                {
                    ForRootSchemaContentTable = new
                    {
                        Id = "A9C86AB6-DF05-459C-8B28-86814CAD1D47",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        Name = "Page not found message",
                        Status = 3,
                        PublishedOn = DateTime.Now,
                        PublishedByUser = "Better CMS"
                    },

                    ForPagesSchemaHtmlContentTable = new
                    {
                        Id = "A9C86AB6-DF05-459C-8B28-86814CAD1D47",
                        ActivationDate = DateTime.Now,
                        UseCustomCss = false,
                        UseCustomJs = false,
                        Html = "<p>Oops! The page you are looking for can not be found.</p>",
                        EditInSourceMode = false
                    }
                }
            };

            var page404PageContents = new
            {
                Header = new
                {
                    Id = "1471FC94-D8CC-4FDB-B5D2-0806A91F0B7E",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = page404.ForRootSchema.Id,
                    ContentId = widgets.Logo.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Header.Id
                },

                Main = new
                {
                    Id = "1786715D-B46E-4F57-A67F-9A77BB0E835B",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = page404.ForRootSchema.Id,
                    ContentId = page404.Content.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Main.Id
                },

                Footer = new
                {
                    Id = "51AC147A-C915-46D3-ABC9-08D9D215A1B0",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = page404.ForRootSchema.Id,
                    ContentId = widgets.Copyright.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Footer.Id
                }
            };
            #endregion

            #region Page 500

            var page500 = new
            {
                ForRootSchema = new
                {
                    Id = "7329B110-4E6F-4A1E-B89D-0CB0C1299B73",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PublishedOn = DateTime.Now,
                    LayoutId = defaultLayout.Layout.Id,
                    PageUrl = FixUrl("/500/"),
                    Title = "Internal Server Error",
                    Status = (int)PageStatus.Published,
                    MetaTitle = "Internal Server Error",
                    MetaDescription = "Internal Server Error.",
                    MetaKeywords = "Better CMS"
                },

                ForPagesSchema = new
                {
                    Id = "7329B110-4E6F-4A1E-B89D-0CB0C1299B73",
                    Description = "Internal Server Error.",
                    UseCanonicalUrl = false,
                    UseNoFollow = true,
                    UseNoIndex = true,
                    NodeCountInSitemap = 0
                },

                Content = new
                {
                    ForRootSchemaContentTable = new
                    {
                        Id = "0C8FB3FE-58E9-4D49-975C-2DA934661961",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        Name = "Internal server error",
                        Status = 3,
                        PublishedOn = DateTime.Now,
                        PublishedByUser = "Better CMS"
                    },

                    ForPagesSchemaHtmlContentTable = new
                    {
                        Id = "0C8FB3FE-58E9-4D49-975C-2DA934661961",
                        ActivationDate = DateTime.Now,
                        UseCustomCss = false,
                        UseCustomJs = false,
                        Html = "<p>Oops! The Web server encountered an unexpected condition that prevented it from fulfilling your request. Please try again later or contact the administrator.</p>",
                        EditInSourceMode = false
                    }
                }
            };

            var page500PageContents = new
            {
                Header = new
                {
                    Id = "6F303E34-2EF8-4DA6-9816-EF46DF6E7A49",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = page500.ForRootSchema.Id,
                    ContentId = widgets.Logo.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Header.Id
                },

                Main = new
                {
                    Id = "97700E1F-5B7A-4EAC-BE9A-EFA3FAAC6E9F",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = page500.ForRootSchema.Id,
                    ContentId = page500.Content.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Main.Id
                },

                Footer = new
                {
                    Id = "52381E7F-8AAC-4035-ACA6-76F2BAAD4C74",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = page500.ForRootSchema.Id,
                    ContentId = widgets.Copyright.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Footer.Id
                }
            };

            #endregion

            #region Default page

            var defaultPage = new
            {
                ForRootSchema = new
                {
                    Id = "7A1867D8-E8D1-4C95-A9F2-FDDF02277C3A",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PublishedOn = DateTime.Now,
                    LayoutId = defaultLayout.Layout.Id,
                    PageUrl = FixUrl("/"),
                    Title = "Default page",
                    Status = (int)PageStatus.Published,
                    MetaTitle = "Better CMS default page",
                    MetaDescription = "Better CMS default page.",
                    MetaKeywords = "Better CMS, Open Source, .net"
                },

                ForPagesSchema = new
                {
                    Id = "7A1867D8-E8D1-4C95-A9F2-FDDF02277C3A",
                    Description = "Default page",
                    UseCanonicalUrl = false,
                    UseNoFollow = false,
                    UseNoIndex = false,
                    NodeCountInSitemap = 0
                },

                Content = new
                {
                    ForRootSchemaContentTable = new
                    {
                        Id = "8243974F-A0E6-4AA6-80E6-AB914821E724",
                        Version = 1,
                        IsDeleted = false,
                        CreatedOn = DateTime.Now,
                        CreatedByUser = "Better CMS",
                        ModifiedOn = DateTime.Now,
                        ModifiedByUser = "Better CMS",
                        Name = "Content",
                        Status = 3,
                        PublishedOn = DateTime.Now,
                        PublishedByUser = "Better CMS"
                    },

                    ForPagesSchemaHtmlContentTable = new
                    {
                        Id = "8243974F-A0E6-4AA6-80E6-AB914821E724",
                        ActivationDate = DateTime.Now,
                        UseCustomCss = false,
                        UseCustomJs = false,
                        Html = "<p>Hello world!</p>",
                        EditInSourceMode = false
                    }
                }
            };

            var defaultPageContents = new
            {
                Header = new
                {
                    Id = "7337EC22-5465-4792-AD8C-8CA1F18F5842",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = defaultPage.ForRootSchema.Id,
                    ContentId = widgets.Logo.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Header.Id
                },

                Main = new
                {
                    Id = "12A286B8-3545-4D5D-AD60-EFE2F4475807",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = defaultPage.ForRootSchema.Id,
                    ContentId = defaultPage.Content.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Main.Id
                },

                Footer = new
                {
                    Id = "07283A5B-8964-400C-9191-89FF982ABEEF",
                    Version = 1,
                    IsDeleted = false,
                    CreatedOn = DateTime.Now,
                    CreatedByUser = "Better CMS",
                    ModifiedOn = DateTime.Now,
                    ModifiedByUser = "Better CMS",
                    PageId = defaultPage.ForRootSchema.Id,
                    ContentId = widgets.Copyright.ForRootSchemaContentTable.Id,
                    RegionId = defaultLayout.Regions.Footer.Id
                }
            };

            #endregion

            var add404 = CmsContext.Config.Installation.Install404ErrorPage;

            var add500 = CmsContext.Config.Installation.Install500ErrorPage;

            var addDefault = CmsContext.Config.Installation.InstallDefaultPage;

            if (!add404 && !add500 && !addDefault)
            {
                return;
            }

            // Add Default Better CMS Layout and regions.
            Insert.IntoTable("Layouts").InSchema(rootSchemaName).Row(defaultLayout.Layout);
            Insert.IntoTable("Regions").InSchema(rootSchemaName)
                .Row(defaultLayout.Regions.Header)
                .Row(defaultLayout.Regions.Main)
                .Row(defaultLayout.Regions.Footer);
            Insert.IntoTable("LayoutRegions").InSchema(rootSchemaName)
                .Row(defaultLayoutRegions.Header)
                .Row(defaultLayoutRegions.Main)
                .Row(defaultLayoutRegions.Footer);

            // Add header logo widget.
            Insert.IntoTable("Contents").InSchema(rootSchemaName).Row(widgets.Logo.ForRootSchemaContentTable);
            Insert.IntoTable("Widgets").InSchema(rootSchemaName).Row(widgets.Logo.ForRootScemaWidgetsTable);
            Insert.IntoTable("HtmlContentWidgets").InSchema(pagesSchemaName).Row(widgets.Logo.ForPagesSchemaHtmlContentWidgetsTable);

            // Add footer copyright widget.
            Insert.IntoTable("Contents").InSchema(rootSchemaName).Row(widgets.Copyright.ForRootSchemaContentTable);
            Insert.IntoTable("Widgets").InSchema(rootSchemaName).Row(widgets.Copyright.ForRootScemaWidgetsTable);
            Insert.IntoTable("HtmlContentWidgets").InSchema(pagesSchemaName).Row(widgets.Copyright.ForPagesSchemaHtmlContentWidgetsTable);

            if (add404)
            {
                // Add 404 page.
                Insert.IntoTable("Pages").InSchema(rootSchemaName).Row(page404.ForRootSchema);
                Insert.IntoTable("Pages").InSchema(pagesSchemaName).Row(page404.ForPagesSchema);

                // Add 404 page contents.
                Insert.IntoTable("Contents").InSchema(rootSchemaName).Row(page404.Content.ForRootSchemaContentTable);
                Insert.IntoTable("HtmlContents").InSchema(pagesSchemaName).Row(page404.Content.ForPagesSchemaHtmlContentTable);

                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(page404PageContents.Header);
                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(page404PageContents.Main);
                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(page404PageContents.Footer);
            }

            if (add500)
            {
                // Add 500 page.
                Insert.IntoTable("Pages").InSchema(rootSchemaName).Row(page500.ForRootSchema);
                Insert.IntoTable("Pages").InSchema(pagesSchemaName).Row(page500.ForPagesSchema);

                // Add 500 page contents.
                Insert.IntoTable("Contents").InSchema(rootSchemaName).Row(page500.Content.ForRootSchemaContentTable);
                Insert.IntoTable("HtmlContents").InSchema(pagesSchemaName).Row(page500.Content.ForPagesSchemaHtmlContentTable);

                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(page500PageContents.Header);
                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(page500PageContents.Main);
                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(page500PageContents.Footer);
            }

            if (addDefault)
            {
                // Add default page.
                Insert.IntoTable("Pages").InSchema(rootSchemaName).Row(defaultPage.ForRootSchema);
                Insert.IntoTable("Pages").InSchema(pagesSchemaName).Row(defaultPage.ForPagesSchema);

                // Add default page contents.
                Insert.IntoTable("Contents").InSchema(rootSchemaName).Row(defaultPage.Content.ForRootSchemaContentTable);
                Insert.IntoTable("HtmlContents").InSchema(pagesSchemaName).Row(defaultPage.Content.ForPagesSchemaHtmlContentTable);

                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(defaultPageContents.Header);
                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(defaultPageContents.Main);
                Insert.IntoTable("PageContents").InSchema(rootSchemaName).Row(defaultPageContents.Footer);
            }
        }