public bool InsertInProgressDraft(InProgressPost Post) { try { return(XmlManager.InsertInProgressPost(Server.MapPath("~/App_Data/InProgressPosts.xml"), Post, false)); } catch (Exception ex) { string Body = "An error was encountered: " + Environment.NewLine + ex.ToString(); Utils.SendEmail("*****@*****.**", "*****@*****.**", "error encountered", Body); return(false); } }
public static bool InsertInProgressPost(string Path, InProgressPost Post, bool Active) { try { List <InProgressPost> posts = new List <InProgressPost>(); Post.Id = Generate.NewUniqueID; Post.Link = "archive/InProgress/" + String.Format("{0:yyyy/MM/dd}", DateTime.Now) + "/" + Utils.GetSafeTitleString(Post.Title); Post.DatePublished = DateTime.Now.ToString(); Post.Active = false; System.Xml.Serialization.XmlSerializer Serializer = new System.Xml.Serialization.XmlSerializer(posts.GetType()); if (System.IO.File.Exists(Path)) { Stream PathStream = File.Open(Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader objStreamReader = new StreamReader(PathStream); posts = (List <InProgressPost>)Serializer.Deserialize(objStreamReader); objStreamReader.Close(); PathStream.Close(); PathStream.Dispose(); PathStream = File.Open(Path, FileMode.Truncate, FileAccess.Write, FileShare.Write); StreamWriter objStreamWriter = new StreamWriter(PathStream); posts.Reverse(); posts.Add(Post); Serializer.Serialize(objStreamWriter, posts); objStreamWriter.Close(); } else { posts.Add(Post); Stream PathStream = File.Open(Path, FileMode.Create, FileAccess.Write, FileShare.Write); StreamWriter objStreamWriter = new StreamWriter(PathStream); Serializer.Serialize(objStreamWriter, posts); objStreamWriter.Close(); PathStream.Close(); PathStream.Dispose(); } return(true); } catch (Exception ex) { string Body = "An error was encountered: " + Environment.NewLine + ex.ToString(); Utils.SendEmail("*****@*****.**", "*****@*****.**", "error encountered", Body); return(false); } }