Exemple #1
0
        public IActionResult Seed()
        {
            if (api.Pages.GetAll().Count() != 0)
            {
                return(new ForbidResult());
            }

            // Get the default site
            var site = api.Sites.GetDefault();

            // Add media assets
            var bannerId = Guid.NewGuid();

            using (var stream = System.IO.File.OpenRead("ClientApp/src/assets/pexels-photo-355423.jpeg"))
            {
                api.Media.Save(new Piranha.Models.StreamMediaContent()
                {
                    Id       = bannerId,
                    Filename = "pexels-photo-355423.jpeg",
                    Data     = stream
                });
            }

            // Add the blog archived
            var blogId   = Guid.NewGuid();
            var blogPage = Models.BlogArchive.Create(api);

            blogPage.Id                   = blogId;
            blogPage.SiteId               = site.Id;
            blogPage.Title                = "Blog Archive";
            blogPage.MetaKeywords         = "Inceptos, Tristique, Pellentesque, Lorem, Vestibulum";
            blogPage.MetaDescription      = "Morbi leo risus, porta ac consectetur ac, vestibulum at eros.";
            blogPage.NavigationTitle      = "Blog";
            blogPage.Heading.PrimaryImage = bannerId;
            blogPage.Heading.Ingress      = "Curabitur blandit tempus porttitor. Maecenas sed diam eget risus varius blandit sit amet non magna.";
            blogPage.Published            = DateTime.Now;

            api.Pages.Save(blogPage);

            // Add a blog post
            var postId = Guid.NewGuid();
            var post   = Models.BlogPost.Create(api);

            post.Id       = postId;
            post.BlogId   = blogPage.Id;
            post.Category = "Uncategorized";
            post.Tags.Add("Ornare", "Pellentesque", "Fringilla Ridiculus");
            post.Title                = "Dapibus Cursus Justo";
            post.MetaKeywords         = "Nullam, Mollis, Cras, Sem, Ipsum";
            post.MetaDescription      = "Aenean lacinia bibendum nulla sed consectetur.";
            post.Heading.PrimaryImage = SizedImageField.WithSize(bannerId, 1100, 400);
            post.Heading.Ingress      = "Sed posuere consectetur est at lobortis. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.";
            post.Blocks.Add(new HtmlBlock
            {
                Body = "<p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas sed diam eget risus varius blandit sit amet non magna. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Curabitur blandit tempus porttitor. Maecenas faucibus mollis interdum.</p>"
            });
            post.Published = DateTime.Now;

            api.Posts.Save(post);

            // Add the startpage
            var startPage = Models.StartPage.Create(api);

            startPage.SiteId               = site.Id;
            startPage.Title                = "Porta Tortor Euismod";
            startPage.MetaKeywords         = "Fusce, Tristique, Nullam, Parturient, Pellentesque";
            startPage.MetaDescription      = "Vestibulum id ligula porta felis euismod semper.";
            startPage.NavigationTitle      = "Home";
            startPage.Heading.PrimaryImage = bannerId;
            startPage.Heading.Ingress      = "Aenean lacinia bibendum nulla sed consectetur.";
            startPage.Blocks.Add(new HtmlBlock
            {
                Body = "<p>Nulla vitae elit libero, a pharetra augue. Curabitur blandit tempus porttitor. Nulla vitae elit libero, a pharetra augue. Donec id elit non mi porta gravida at eget metus. Curabitur blandit tempus porttitor.</p><p>Etiam porta sem malesuada magna mollis euismod. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Curabitur blandit tempus porttitor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>"
            });
            startPage.Published = DateTime.Now;

            // Add teasers
            startPage.Teasers.Add(new Models.Regions.Teaser()
            {
                Title    = "Lorem Consectetur",
                SubTitle = "Ultricies Nullam Cras",
                Body     = "Aenean lacinia bibendum nulla sed consectetur. Donec id elit non mi porta gravida at eget metus.",
                PageLink = blogPage
            });
            startPage.Teasers.Add(new Models.Regions.Teaser()
            {
                Title    = "Vestibulum Bibendum",
                SubTitle = "Tortor Cras Tristique",
                Body     = "Nullam id dolor id nibh ultricies vehicula ut id elit. Cras justo odio, dapibus ac facilisis in, egestas eget quam.",
                PostLink = post
            });
            api.Pages.Save(startPage);

            return(new OkResult());
        }
Exemple #2
0
        /// <summary>
        /// Seeds some test data.
        /// </summary>
        /// <param name="api">The current application api</param>
        private void Seed(IApi api)
        {
            if (api.Pages.GetAll().Count() == 0)
            {
                // Get the default site
                var site = api.Sites.GetDefault();

                // Add media assets
                var githubId    = Guid.NewGuid();
                var platformId  = Guid.NewGuid();
                var stopwatchId = Guid.NewGuid();

                using (var stream = File.OpenRead("assets/seed/github.png"))
                {
                    api.Media.Save(new Piranha.Models.StreamMediaContent()
                    {
                        Id       = githubId,
                        Filename = "github.png",
                        Data     = stream
                    });
                }
                using (var stream = File.OpenRead("assets/seed/platform.png"))
                {
                    api.Media.Save(new Piranha.Models.StreamMediaContent()
                    {
                        Id       = platformId,
                        Filename = "platform.png",
                        Data     = stream
                    });
                }
                using (var stream = File.OpenRead("assets/seed/stopwatch.png"))
                {
                    api.Media.Save(new Piranha.Models.StreamMediaContent()
                    {
                        Id       = stopwatchId,
                        Filename = "stopwatch.png",
                        Data     = stream
                    });
                }

                // Add the startpage
                var startPage = Models.TeaserPage.Create(api);

                // Add meta info
                startPage.SiteId          = site.Id;
                startPage.Title           = "Welcome to Piranha CMS";
                startPage.MetaKeywords    = "Piranha, Piranha CMS, CMS, AspNetCore, DotNetCore, MVC";
                startPage.MetaDescription = "Piranha is the fun, fast and lightweight framework for developing cms-based web applications with AspNetCore.";
                startPage.NavigationTitle = "Home";
                startPage.Heading.Ingress = "The CMS framework with an extra bite";
                startPage.Blocks.Add(new HtmlBlock
                {
                    Body =
                        "<h2>What is Piranha.Core</h2>" +
                        "<p>" +
                        "This is a <strong>complete rewrite</strong> of Piranha CMS for <code>NetStandard</code>. The " +
                        "goal of this rewrite is to create a version capable of targeting multiple platforms &amp; " +
                        "frameworks with minimal depenencies, but still provide a flexible & high performance CMS library." +
                        "</p>"
                });
                startPage.Blocks.Add(new HtmlBlock
                {
                    Body =
                        "<p>Piranha is currently built for <code>NetStandard 2.0</code> and uses the following awesome packages:</p>" +
                        "<ul> " +
                        "<li>AutoMapper <code>6.2.1</code></li>" +
                        "<li>Markdig <code>0.14.6</code></li>" +
                        "<li>Microsoft.EntityFrameworkCore <code>2.0.1</code></li>" +
                        "<li>Newtonsoft.Json <code>10.0.3</code></li>" +
                        "</ul>"
                });
                startPage.Blocks.Add(new HtmlBlock
                {
                    Body =
                        "<h2>Licensing</h2>" +
                        "<p>" +
                        "Piranha CMS is released under the <strong>MIT</strong> license. It is a permissive free " +
                        "software license, meaning that it permits reuse within proprietary software provided all " +
                        "copies of the licensed software include a copy of the MIT License terms and the copyright " +
                        "notice." +
                        "</p>"
                });
                startPage.Published = DateTime.Now;

                // Add teasers
                startPage.Teasers.Add(new Models.Regions.Teaser()
                {
                    Title = "Cross Platform",
                    Image = SizedImageField.WithSize(platformId, 256),
                    Body  = "<p>Built for <code>NetStandard</code> and <code>AspNet Core</code>, Piranha CMS can be run on Windows, Linux and Mac OS X.</p>"
                });
                startPage.Teasers.Add(new Models.Regions.Teaser()
                {
                    Title = "Super Fast",
                    Image = SizedImageField.WithSize(stopwatchId, 256),
                    Body  = "<p>Designed from the ground up for super-fast performance using <code>EF Core</code> and optional Caching.</p>"
                });
                startPage.Teasers.Add(new Models.Regions.Teaser()
                {
                    Title = "Open Source",
                    Image = SizedImageField.WithSize(githubId, 256),
                    Body  = "<p>Everything is Open Source and released under the <code>MIT</code> license for maximum flexibility.</p>"
                });

                api.Pages.Save(startPage);

                var docsPage = Models.StandardPage.Create(api);
                docsPage.SiteId      = site.Id;
                docsPage.SortOrder   = 1;
                docsPage.Title       = "Docs";
                docsPage.RedirectUrl = "https://github.com/PiranhaCMS/piranha.core/wiki";
                docsPage.Published   = DateTime.Now;

                api.Pages.Save(docsPage);

                // Add the blog page
                var blogPage = Models.BlogArchive.Create(api);

                blogPage.SiteId          = site.Id;
                blogPage.Title           = "Blog Archive";
                blogPage.SortOrder       = 1;
                blogPage.MetaKeywords    = "Piranha, Piranha CMS, CMS, AspNetCore, DotNetCore, MVC, Blog";
                blogPage.MetaDescription = "Read the latest blog posts about Piranha, fast and lightweight framework for developing cms-based web applications with AspNetCore.";
                blogPage.NavigationTitle = "Blog";
                blogPage.Body            = "Welcome to the blog, the best place to stay up to date with what's happening in the Piranha infested waters.";
                blogPage.Published       = DateTime.Now;

                api.Pages.Save(blogPage);

                // Add a blog post
                using (var stream = File.OpenRead("assets/seed/blogpost.md"))
                {
                    using (var reader = new StreamReader(stream))
                    {
                        var post = Models.BlogPost.Create(api);

                        // Add main content
                        post.BlogId          = blogPage.Id;
                        post.Category        = "Uncategorized";
                        post.Title           = "My first post";
                        post.MetaKeywords    = "First, Blog, AspNetCore, DotNetCore";
                        post.MetaDescription = "The first post ever written by a Piranha";
                        post.Heading.Ingress =
                            "<p>" +
                            "Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. " +
                            "Etiam porta sem malesuada magna mollis euismod. Lorem ipsum dolor sit amet, consectetur adipiscing elit." +
                            "</p>";
                        post.Blocks.Add(new HtmlBlock()
                        {
                            Body = App.Markdown.Transform(reader.ReadToEnd())
                        });
                        post.Published = DateTime.Now;
                        post.Tags.Add("Tech", "AspNetCore", "NetCore");

                        api.Posts.Save(post);
                    }
                }
            }
        }