/[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 122 by william, Sun Mar 10 19:22: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                    Name = string.Empty;
17                }
18                public string ChannelId { get; internal set; }
19                public string Name { 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.Name = t.MetaData[XMLTVConstants.Channels.ChannelDisplayName].FirstOrDefault().Value.ToString();                    
44                        list.Add(definition);
45                    }
46                    catch (Exception ex) { throw ex; }
47                }
48                bindable = list;
49              return bindable;              return bindable;
50          }          }
51      }      }
52      public class ProgramList : List<IXMLTVProgram>, IDataSourceBindable      public class ProgramList : List<IXMLTVProgram>, IDataSourceBindable
53      {      {
54          static private List<string> known_columns;          private class ProgramDefintion
         static ProgramList()  
55          {          {
56              known_columns = new List<string>();              public ProgramDefintion()
57              known_columns.Add("Channel");              {
58              known_columns.Add("Title");                  ChannelId = string.Empty;
59              known_columns.Add("Sub-Title");                  ChannelName = string.Empty;
60              known_columns.Add("Description");                  Start = new DateTime();
61              known_columns.Add("Start");                  Stop = new DateTime();
62              known_columns.Add("End");                  Description = string.Empty;
63                    Title = string.Empty;
64                    SubTitle = string.Empty;
65                }
66                public string ChannelId { get; internal set; }
67                public string ChannelName { get; internal set; }
68                public DateTime Start { get; internal set; }
69                public DateTime Stop { get; internal set; }
70                public string Description { get; internal set; }
71                public string Title { get; internal set; }
72                public string SubTitle { get; internal set; }
73          }          }
74          public ProgramList() { }          public ProgramList() { }
75    
76          public object CreateBindableDataSource()          public object CreateBindableDataSource()
77          {          {
78              object bindable = new object();              object bindable = new object();
79                List<ProgramDefintion> list = new List<ProgramDefintion>();
80    
81                            foreach (var t in this)
82                {
83                    try
84                    {
85                        ProgramDefintion definition = new ProgramDefintion();
86                        definition.ChannelId = t.MetaData[XMLTVConstants.Programs.ProgramChannelId].ToString();
87    
88                        var channels = XMLTV.GetChannels();
89                        if (channels != null)
90                        {
91                            var channel = channels.Find(p => p.Id == definition.ChannelId);
92                            if (channel != null)
93                            {
94                                definition.ChannelName = channel.MetaData[XMLTVConstants.Channels.ChannelDisplayName].FirstOrDefault().Value.ToString();
95                            }
96                            else
97                            {
98                                definition.ChannelName = string.Empty;
99                            }
100                        }
101                        else
102                        {
103                            definition.ChannelName = string.Empty;
104                        }
105                        definition.Start = (DateTime)t.MetaData[XMLTVConstants.Programs.ProgramStart];
106                        definition.Stop = (DateTime)t.MetaData[XMLTVConstants.Programs.ProgramStop];
107                        definition.Description = t.MetaData[XMLTVConstants.Programs.ProgramDescription].ToString();
108                        definition.Title = t.MetaData[XMLTVConstants.Programs.ProgramTitle].ToString();
109                        definition.SubTitle = t.MetaData[XMLTVConstants.Programs.ProgramSubTitle].ToString();
110                        list.Add(definition);
111                    }
112                    catch (Exception ex) { throw ex; }
113                }
114                bindable = list;
115              return bindable;              return bindable;
116          }          }
117      }      }

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

  ViewVC Help
Powered by ViewVC 1.1.22