All pastes #279911 Raw Edit

Kiryn

public text v1 · immutable
·published 2006-12-15 12:54 UTC
rendered paste body
/* FrostDiary License Agreement
 * 
 * Please view the link for the license.
 * 
 * http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx
 * 
 */

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Xml;
using System.Net;

namespace FrostDiary
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            entryToolStripMenuItem.Enabled = false;
        }

        private void entryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ssProgressBar.Visible = true;
            ssProgressBar.Minimum = 1;
            ssProgressBar.Maximum = 2;
            ssProgressBar.Value = 1;
            ssProgressBar.Step = 1;

            txtEntryDate.Text = DateTime.Now.ToLongDateString();
            txtEntryName.Text = string.Empty;
            txtEntryNumber.Text = txtEntryTime.Text.Length != 0 ? (Convert.ToInt32(txtEntryNumber.Text) + 1).ToString() : "0";
            txtEntryTime.Text = DateTime.Now.ToLongTimeString();
            ssProgressBar.PerformStep();
            Thread.Sleep(1000);
            ssProgressBar.Visible = false;
            ssStatusLabel.Text = "";
        }

        private void openDiaryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FileToOpen();
            entryToolStripMenuItem.Enabled = true;
        }

        public void FileToOpen()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.InitialDirectory = "C:\\Program Files\\FrostDiary\\User\\";
            ofd.Filter = "FrostDiary DiaryEntries (.fdd)|*.fdd";
            ofd.FilterIndex = 2;
            ofd.RestoreDirectory = true;

            ssProgressBar.Visible = true;
            ssProgressBar.Minimum = 1;
            ssProgressBar.Maximum = 10;
            ssProgressBar.Value = 1;
            ssProgressBar.Step = 1;

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                XmlTextReader xtr = new XmlTextReader(ofd.FileName);
                try
                {
                    while (xtr.Read())
                    {
                        ssProgressBar.PerformStep();
                        if (xtr.NodeType == XmlNodeType.Element)
                        {
                            if (xtr.LocalName.Equals("EntryNumber"))
                            {
                                txtEntryNumber.Text = xtr.ReadString();
                            }
                            if (xtr.LocalName.Equals("Title"))
                            {
                                txtEntryName.Text = xtr.ReadString();
                            }
                            if (xtr.LocalName.Equals("Date"))
                            {
                                txtEntryDate.Text = xtr.ReadString();
                            }
                            if (xtr.LocalName.Equals("Time"))
                            {
                                txtEntryTime.Text = xtr.ReadString();
                            }
                            if (xtr.LocalName.Equals("UserEntry"))
                            {
                                rtbEntry.Text = xtr.ReadString();
                            }
                        }

                        Diary.FromText(ofd.FileName);
                        treeView1.Nodes.Clear();
                        treeView1.Nodes.Add("FrostDiary");

                        foreach (Entry diaryEntry in Diary.entries)
                        {
                            treeView1.Nodes.Add(diaryEntry.Date);
                        }
                    }
                    Thread.Sleep(1000);
                    ssProgressBar.Visible = false;
                    ssStatusLabel.Text = "File successfully opened.";
                }
                catch (XmlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    xtr.Close();
                }

                //try
                //{
                    
                //}
                //catch
                //{
                //}
                //finally
                //{

                //}
            }
        }

        private void diaryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult results = MessageBox.Show("Are you sure you want a new diary?\nThis will completely erase your"
            + " old diary?", "New Diary", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop);

            switch (results)
            {
                case DialogResult.OK:
                    txtEntryDate.Text = DateTime.Now.ToLongDateString();
                    txtEntryName.Text = "";
                    txtEntryNumber.Text = "1";
                    txtEntryTime.Text = DateTime.Now.ToLongTimeString();
                    rtbEntry.Text = "";
                    //tvEntries.Nodes.Clear();
                    break;
                case DialogResult.Cancel:
                    break;
                default:
                    break;
            }
        }
    }
    public class Entry
    {
        private readonly string entryNumber;
        private readonly string title;
        private readonly string date;
        private readonly string time;
        private readonly string userEntry;
        public string EntryNumber
        {
            get
            {
                return entryNumber;
            }
        }
        public string Title
        {
            get
            {
                return title;
            }
        }
        public string Date
        {
            get
            {
                return date;
            }
        }
        public string Time
        {
            get
            {
                return time;
            }
        }
        public string UserEntry
        {
            get
            {
                return userEntry;
            }
        }
        public Entry(XmlNode entryNode)
        {
            XmlNode selected;
            selected = entryNode.SelectSingleNode("EntryNumber");
            if (selected != null)
                entryNumber = selected.InnerText;       // Change to InnerXml to read the whole tag.
            selected = entryNode.SelectSingleNode("Title");
            if (selected != null)
                title = selected.InnerText;     // Change to InnerXml to read the whole tag.
            selected = entryNode.SelectSingleNode("Date");
            if (selected != null)
                date = selected.InnerText;      // Change to InnerXml to read the whole tag.
            selected = entryNode.SelectSingleNode("Time");
            if (selected != null)
                time = selected.InnerText;      // Change to InnerXml to read the whole tag.
            selected = entryNode.SelectSingleNode("UserEntry");
            if (selected != null)
                userEntry = selected.InnerText; // Change to InnerXml to read the whole tag.
        }
    }
    public class Diary
    {
        public static List<Entry> entries;
        public IList<Entry> Entries
        {
            get
            {
                return entries.AsReadOnly();
            }
        }
        private Diary(XmlNode diaryNode)
        {
            entries = new List<Entry>();
            XmlNodeList entryNodes = diaryNode.SelectNodes("Entry");
            foreach (XmlNode entryNode in entryNodes)
            {
                entries.Add(new Entry(entryNode));
            }
        }
        public static Diary FromUri(string uri)
        {
            XmlDocument xmlDoc;
            WebClient webClient = new WebClient();
            using (Stream xmlStream = webClient.OpenRead(uri))
            {
                TextReader textReader = new StreamReader(xmlStream);
                XmlTextReader reader = new XmlTextReader(textReader);
                xmlDoc = new XmlDocument();
                xmlDoc.Load(reader);
            }
            return new Diary(xmlDoc);
        }
        public static Diary FromText(string xmlText)
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(xmlText);
            return new Diary(xmlDoc);
        }
    }
}