/[xmltv_parser]/trunk/xmltv_parser/main.cs
ViewVC logotype

Diff of /trunk/xmltv_parser/main.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 16 by william, Thu Mar 7 09:26:43 2013 UTC revision 32 by william, Thu Mar 7 13:52:56 2013 UTC
# Line 2  Line 2 
2  using System.Collections.Generic;  using System.Collections.Generic;
3  using System.ComponentModel;  using System.ComponentModel;
4  using System.Data;  using System.Data;
5    using System.Linq;
6  using System.Drawing;  using System.Drawing;
7  using System.Text;  using System.Text;
8  using System.Windows.Forms;  using System.Windows.Forms;
9  using libxmltv.Core;  using libxmltv.Core;
10  using Enterprise.Logging;  using Enterprise.Logging;
11    using libxmltv.Interfaces;
12    using System.IO;
13    using System.Runtime.Serialization.Formatters.Binary;
14    
15  namespace xmltv_parser  namespace xmltv_parser
16  {  {
# Line 17  namespace xmltv_parser Line 21  namespace xmltv_parser
21              InitializeComponent();              InitializeComponent();
22              string log_path = Application.StartupPath;              string log_path = Application.StartupPath;
23              string log_filename = string.Format("{0}.log", typeof(main).Assembly.GetName().Name);              string log_filename = string.Format("{0}.log", typeof(main).Assembly.GetName().Name);
24              gLog.CreateLog(string.Format(@"{0}\{1}", log_path, log_filename), false, LogLevel.kLogLevel_All);                          gLog.CreateLog(string.Format(@"{0}\{1}", log_path, log_filename), false, LogLevel.kLogLevel_All);
25          }          }
26    
27            //List<IXMLTVChannel> Channels;
28            List<IXMLTVProgram> Programs;
29    
30          private void main_Load(object sender, EventArgs e)          private void main_Load(object sender, EventArgs e)
31          {          {
32    
33          }          }
34          private void main_Shown(object sender, EventArgs e)          private void main_Shown(object sender, EventArgs e)
35          {          {
36              gLog.Log.Debug.WriteLine("");          }
37              var xmltv = XMLTV.CreateLoader("20130307_continuum_schedule.xml");  
38              //XMLTV.Test(xmltv);  
39            void LoadXMLTVShcedule(string schedule_xml)
40            {
41                var xmltv_loader = XMLTV.CreateLoader(schedule_xml);
42                var xmltv_parser = XMLTV.CreateParser(xmltv_loader);
43                var p = XMLTV.GetParser(xmltv_parser);
44    
45                //var channel_count = p.Channels.Values.Count;
46                //Channels = p.Channels.Values.ToList().GetRange(0, channel_count).ToList();
47                var program_count = p.Programs.Values.Count;
48                var program_list = p.Programs.Values.ToList().OrderBy(s => s.Start);
49                //Programs = program_list(0, program_count).ToList();
50                Programs = new List<IXMLTVProgram>(program_list.ToArray());
51            }
52    
53            void CreateControls()
54            {
55                foreach (var program in Programs)
56                {
57                    ListViewItem li = new ListViewItem(string.Format("{0} {1}", program.Channel.Number, program.Channel.CallSign));
58                    li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Title));
59                    li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.SubTitle));
60                    li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Description));
61                    li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Start.ToString("yyyy/MM/dd hh:mm tt")));
62                    li.SubItems.Add(new ListViewItem.ListViewSubItem(li, program.Stop.ToString("yyyy/MM/dd hh:mm tt")));
63                    lstPrograms.Items.Add(li);
64                }
65            }
66    
67            private void mnuItemOpenXMLTVFile_Click(object sender, EventArgs e)
68            {
69                //LoadXMLTVShcedule("20130307_continuum_schedule.xml");
70                var result = xmltv_file_chooser.ShowDialog();
71                if (result != DialogResult.OK) return;
72                LoadXMLTVShcedule(xmltv_file_chooser.FileName);
73                CreateControls();
74            }
75    
76            private void mnuItemOpenSavedData_Click(object sender, EventArgs e)
77            {
78                var result = xmltv_program_data_loader.ShowDialog();
79                if (result != DialogResult.OK) return;
80                try
81                {
82                    using (Stream stream = File.Open(xmltv_program_data_loader.FileName, FileMode.Open))
83                    {
84                        try
85                        {
86                            BinaryFormatter bin = new BinaryFormatter();
87                            Programs = (List<IXMLTVProgram>)bin.Deserialize(stream);
88                        }
89                        catch (Exception ex) { gLog.Log.Error.WriteLine(ex.ToString()); }
90                    }
91                }
92                catch (Exception ex) { gLog.Log.Error.WriteLine(ex.ToString()); }
93                CreateControls();
94            }
95    
96            private void mnuItemSaveData_Click(object sender, EventArgs e)
97            {
98                var result = xmltv_program_data_saver.ShowDialog();
99                if (result != DialogResult.OK) return;
100                try
101                {
102                    using (Stream stream = File.Open(xmltv_program_data_saver.FileName, FileMode.Create))
103                    {
104                        try
105                        {
106                            BinaryFormatter bin = new BinaryFormatter();
107                            bin.Serialize(stream, Programs);
108                        }
109                        catch (Exception ex) { gLog.Log.Error.WriteLine(ex.ToString()); }
110                    }
111                }
112                catch (Exception ex) { gLog.Log.Error.WriteLine(ex.ToString()); }
113          }          }
114      }      }
115  }  }
116    

Legend:
Removed from v.16  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.22