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); } }
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; } }
public HomeController() { _blogPostDb = new BlogPostDb(); }
public HomeController() { _blogPostDb = new BlogPostDb(); }