/[xmltv_parser]/trunk/libxmltv/Core/DataSourceBindable.cs
ViewVC logotype

Diff of /trunk/libxmltv/Core/DataSourceBindable.cs

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

revision 121 by william, Sun Mar 10 18:30:13 2013 UTC revision 124 by william, Sun Mar 10 19:34:06 2013 UTC
# Line 8  namespace libxmltv.Core Line 8  namespace libxmltv.Core
8  {  {
9      public class ChannelList : List<IXMLTVChannel>, IDataSourceBindable      public class ChannelList : List<IXMLTVChannel>, IDataSourceBindable
10      {      {
11          static private List<string> known_columns;          private class ChannelDefintion
         static ChannelList()  
12          {          {
13              known_columns = new List<string>();              public ChannelDefintion()
14              known_columns.Add("Id");              {
15              known_columns.Add("Name");                  ChannelId = string.Empty;
16                    ChannelName = string.Empty;
17                }
18                public string ChannelId { get; internal set; }
19                public string ChannelName { get; internal set; }
20          }          }
21            //static private List<string> known_columns;
22            //static ChannelList()
23            //{
24            //    known_columns = new List<string>();
25            //    known_columns.Add("Id");
26            //    known_columns.Add("Name");
27            //}
28          public ChannelList() { }          public ChannelList() { }
29    
30    
31    
32          public object CreateBindableDataSource()          public object CreateBindableDataSource()
33          {          {
34              object bindable = new object();              object bindable = new object();
35                List<ChannelDefintion> list = new List<ChannelDefintion>();
36                
37                foreach (var t in this)
38                {
39                    try
40                    {
41                        ChannelDefintion definition = new ChannelDefintion();
42                        definition.ChannelId = t.Id;
43                        definition.ChannelName = t.MetaData[XMLTVConstants.Channels.ChannelDisplayName].FirstOrDefault().Value.ToString();                    
44                        list.Add(definition);
45                    }
46                    catch (Exception ex) { throw ex; }
47                }
48                list = list.OrderBy(s => s.ChannelName).ToList();
49                bindable = list;
50              return bindable;              return bindable;
51          }          }
52      }      }
53      public class ProgramList : List<IXMLTVProgram>, IDataSourceBindable      public class ProgramList : List<IXMLTVProgram>, IDataSourceBindable
54      {      {
55          static private List<string> known_columns;          private class ProgramDefintion
         static ProgramList()  
56          {          {
57              known_columns = new List<string>();              public ProgramDefintion()
58              known_columns.Add("Channel");              {
59              known_columns.Add("Title");                  //ChannelId = string.Empty;
60              known_columns.Add("Sub-Title");                  ChannelName = string.Empty;
61              known_columns.Add("Description");                  Start = new DateTime();
62              known_columns.Add("Start");                  Stop = new DateTime();
63              known_columns.Add("End");                  Description = string.Empty;
64                    Title = string.Empty;
65                    SubTitle = string.Empty;
66                }
67                //public string ChannelId { get; internal set; }
68                public string ChannelName { get; internal set; }
69                public DateTime Start { get; internal set; }
70                public DateTime Stop { get; internal set; }
71                public string Title { get; internal set; }
72                public string SubTitle { get; internal set; }
73                public string Description { get; internal set; }    
74          }          }
75          public ProgramList() { }          public ProgramList() { }
76    
77          public object CreateBindableDataSource()          public object CreateBindableDataSource()
78          {          {
79              object bindable = new object();              object bindable = new object();
80                List<ProgramDefintion> list = new List<ProgramDefintion>();
81    
82                            foreach (var t in this)
83                {
84                    try
85                    {
86                        ProgramDefintion definition = new ProgramDefintion();
87                        string ChannelId = t.MetaData[XMLTVConstants.Programs.ProgramChannelId].ToString();
88                        //definition.ChannelId = ChannelId;
89    
90                        var channels = XMLTV.GetChannels();
91                        if (channels != null)
92                        {
93                            var channel = channels.Find(p => p.Id == ChannelId);
94                            if (channel != null)
95                            {
96                                definition.ChannelName = channel.MetaData[XMLTVConstants.Channels.ChannelDisplayName].FirstOrDefault().Value.ToString();
97                            }
98                            else
99                            {
100                                definition.ChannelName = string.Empty;
101                            }
102                        }
103                        else
104                        {
105                            definition.ChannelName = string.Empty;
106                        }
107                        definition.Start = (DateTime)t.MetaData[XMLTVConstants.Programs.ProgramStart];
108                        definition.Stop = (DateTime)t.MetaData[XMLTVConstants.Programs.ProgramStop];
109                        definition.Description = t.MetaData[XMLTVConstants.Programs.ProgramDescription].ToString();
110                        definition.Title = t.MetaData[XMLTVConstants.Programs.ProgramTitle].ToString();
111                        definition.SubTitle = t.MetaData[XMLTVConstants.Programs.ProgramSubTitle].ToString();
112                        list.Add(definition);
113                    }
114                    catch (Exception ex) { throw ex; }
115                }
116    
117                list = list.OrderBy(s => s.Start).ToList();
118    
119                bindable = list;
120              return bindable;              return bindable;
121          }          }
122      }      }
# Line 54  namespace libxmltv.Core Line 127  namespace libxmltv.Core
127    
128          public object CreateBindableDataSource()          public object CreateBindableDataSource()
129          {          {
130              object bindable = new object();              throw new NotImplementedException("Conversion of Extra MetaData to a bindable datasource has not been implemented.");
131              return bindable;              //object bindable = new object();
132                //return bindable;
133          }          }
134      }      }
135  }  }

Legend:
Removed from v.121  
changed lines
  Added in v.124

  ViewVC Help
Powered by ViewVC 1.1.22