Example #1
0
        public static bool ImportedData(Stream stream, BlogPostDb db)
        {
            var deserialiser = new XmlSerializer(typeof(BlogPost[]));

            try
            {
                BlogPost[] posts;
                using (var streamReader = new StreamReader(stream))
                {
                    using (var xmlReader = XmlReader.Create(streamReader))
                    {
                        posts = (BlogPost[])deserialiser.Deserialize(xmlReader);
                    }
                }

                var newTags = new Dictionary <string, Models.Tag>();

                foreach (var post in posts)
                {
                    var dbPost = new CjbHome.Models.BlogPost
                    {
                        LinkText       = post.LinkText,
                        Title          = post.Title,
                        PostDate       = post.PostDate,
                        PostTime       = post.PostTime,
                        Content        = post.Content,
                        HeaderImageUrl = post.HeaderImageUrl,
                        Tags           = new List <CjbHome.Models.Tag>()
                    };

                    foreach (var tagString in post.Tags)
                    {
                        var blogTag = db.Tags.FirstOrDefault(t => t.Title == tagString);
                        if (blogTag == null)
                        {
                            if (!newTags.TryGetValue(tagString, out blogTag))
                            {
                                blogTag = new Models.Tag {
                                    Title = tagString
                                };
                                db.Tags.Add(blogTag);
                                newTags.Add(tagString, blogTag);
                            }
                        }
                        dbPost.Tags.Add(blogTag);
                    }

                    var existingPost = db.BlogPosts.FirstOrDefault(p => p.LinkText == dbPost.LinkText);
                    if (existingPost != null)
                    {
                        db.BlogPosts.Remove(existingPost);
                    }

                    db.BlogPosts.Add(dbPost);
                }

                db.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Example #2
0
        public static bool ImportedData(Stream stream, BlogPostDb db)
        {
            var deserialiser = new XmlSerializer(typeof(BlogPost[]));
            try
            {
                BlogPost[] posts;
                using (var streamReader = new StreamReader(stream))
                {
                    using (var xmlReader = XmlReader.Create(streamReader))
                    {
                        posts = (BlogPost[])deserialiser.Deserialize(xmlReader);
                    }
                }

                var newTags = new Dictionary<string, Models.Tag>();

                foreach (var post in posts)
                {
                    var dbPost = new CjbHome.Models.BlogPost
                    {
                        LinkText = post.LinkText,
                        Title = post.Title,
                        PostDate = post.PostDate,
                        PostTime = post.PostTime,
                        Content = post.Content,
                        HeaderImageUrl = post.HeaderImageUrl,
                        Tags = new List<CjbHome.Models.Tag>()
                    };

                    foreach (var tagString in post.Tags)
                    {
                        var blogTag = db.Tags.FirstOrDefault(t => t.Title == tagString);
                        if (blogTag == null)
                        {
                            if (!newTags.TryGetValue(tagString, out blogTag))
                            {
                                blogTag = new Models.Tag { Title = tagString };
                                db.Tags.Add(blogTag);
                                newTags.Add(tagString, blogTag);
                            }
                        }
                        dbPost.Tags.Add(blogTag);
                    }

                    var existingPost = db.BlogPosts.FirstOrDefault(p => p.LinkText == dbPost.LinkText);
                    if (existingPost != null)
                    {
                        db.BlogPosts.Remove(existingPost);
                    }

                    db.BlogPosts.Add(dbPost);
                }

                db.SaveChanges();

                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
Example #3
0
 public HomeController()
 {
     _blogPostDb = new BlogPostDb();
 }
Example #4
0
 public HomeController()
 {
     _blogPostDb = new BlogPostDb();
 }