/[xmltv_parser]/trunk/GBPVRProgramDatabaseFixer/SQLLITE.cs
ViewVC logotype

Diff of /trunk/GBPVRProgramDatabaseFixer/SQLLITE.cs

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

revision 220 by william, Sun Mar 17 01:50:27 2013 UTC revision 221 by william, Sun Mar 17 02:23:17 2013 UTC
# Line 46  namespace GBPVRProgramDatabaseFixer Line 46  namespace GBPVRProgramDatabaseFixer
46    
47          #region DATABASE DEFINITIONS          #region DATABASE DEFINITIONS
48    
49          public interface ICHANNEL          public interface ICHANNEL : ICloneable
50          {          {
51              Int64 oid { get; }              Int64 oid { get; }
52              String name { get; }              String name { get; }
# Line 55  namespace GBPVRProgramDatabaseFixer Line 55  namespace GBPVRProgramDatabaseFixer
55              String favourite_channel { get; }              String favourite_channel { get; }
56              String display_name { get; }              String display_name { get; }
57          }          }
58          private class CHANNEL : ICHANNEL          private class CHANNEL : ICHANNEL, ICloneable
59          {          {
60              public CHANNEL()              public CHANNEL()
61              {              {
# Line 75  namespace GBPVRProgramDatabaseFixer Line 75  namespace GBPVRProgramDatabaseFixer
75              public String favourite_channel { get; set; }              public String favourite_channel { get; set; }
76              public String display_name { get; set; }              public String display_name { get; set; }
77              #endregion              #endregion
78    
79                public object Clone()
80                {
81                    CHANNEL p = new CHANNEL();
82                    BaseDatabaseDefinition<CHANNEL>.Create(this, ref p);
83                    return p;  
84                }
85          }          }
86          public interface IRECORDING_SCHEDULE          public interface IRECORDING_SCHEDULE : ICloneable
87          {          {
88              Int64 oid { get; }              Int64 oid { get; }
89              Int64 programme_oid { get; }              Int64 programme_oid { get; }
# Line 130  namespace GBPVRProgramDatabaseFixer Line 137  namespace GBPVRProgramDatabaseFixer
137                      throw ex;                      throw ex;
138                  }                  }
139              }              }
140                public static void Create(T source, ref T destination)
141                {
142                    Type t = source.GetType();
143                    var props = t.GetProperties();
144                    foreach (var prop in props)
145                    {
146                        try
147                        {
148                            object value = prop.GetValue(source, null);
149                            prop.SetValue(destination, value, null);
150                        }
151                        catch (Exception ex)
152                        {
153                            throw ex;
154                        }
155                    }
156                }
157              public static void Create(ref T instance, SQLiteDataReader r, int index)              public static void Create(ref T instance, SQLiteDataReader r, int index)
158              {              {
159                  string field_name = r.GetName(index);                  string field_name = r.GetName(index);
# Line 174  namespace GBPVRProgramDatabaseFixer Line 198  namespace GBPVRProgramDatabaseFixer
198              }              }
199          }          }
200    
201          private class RECORDING_SCHEDULE : IRECORDING_SCHEDULE          private class RECORDING_SCHEDULE : IRECORDING_SCHEDULE, ICloneable
202          {          {
203              public RECORDING_SCHEDULE()              public RECORDING_SCHEDULE()
204              {              {
# Line 186  namespace GBPVRProgramDatabaseFixer Line 210  namespace GBPVRProgramDatabaseFixer
210              {              {
211                  BaseDatabaseDefinition<RECORDING_SCHEDULE>.Create(ref instance, r, index);                  BaseDatabaseDefinition<RECORDING_SCHEDULE>.Create(ref instance, r, index);
212              }              }
213                public object Clone()
214                {
215                    RECORDING_SCHEDULE p = new RECORDING_SCHEDULE();
216                    BaseDatabaseDefinition<RECORDING_SCHEDULE>.Create(this, ref p);
217                    return p;  
218                }
219              #region IRECORDING_SCHEDULE members              #region IRECORDING_SCHEDULE members
220              public Int64 oid { get; set; }              public Int64 oid { get; set; }
221              public Int64 programme_oid { get; set; }              public Int64 programme_oid { get; set; }
# Line 204  namespace GBPVRProgramDatabaseFixer Line 233  namespace GBPVRProgramDatabaseFixer
233              public Int32 priority { get; set; }              public Int32 priority { get; set; }
234              public String conversion_profile { get; set; }              public String conversion_profile { get; set; }
235              #endregion              #endregion
236    
237                
238          }          }
239    
240          public interface IPROGRAMME : IEquatable<IPROGRAMME>          public interface IPROGRAMME : IEquatable<IPROGRAMME>, ICloneable
241          {          {
242              Int64 oid { get; set; }              Int64 oid { get; set; }
243              String name { get; set; }              String name { get; set; }
# Line 221  namespace GBPVRProgramDatabaseFixer Line 252  namespace GBPVRProgramDatabaseFixer
252              string ToString();              string ToString();
253              IProgramDefinition AsXMLTVProgramDefinition(ISQLLITE sqllite);              IProgramDefinition AsXMLTVProgramDefinition(ISQLLITE sqllite);
254          }          }
255          private class PROGRAMME : IPROGRAMME          private class PROGRAMME : IPROGRAMME, ICloneable
256          {          {
257    
258                public object Clone()
259                {
260                    PROGRAMME p = new PROGRAMME();
261                    BaseDatabaseDefinition<PROGRAMME>.Create(this, ref p);
262                    return p;  
263                }
264    
265              public PROGRAMME()              public PROGRAMME()
266              {              {
267                  BaseDatabaseDefinition<PROGRAMME>.CreateDefault(this);                  BaseDatabaseDefinition<PROGRAMME>.CreateDefault(this);
# Line 293  namespace GBPVRProgramDatabaseFixer Line 332  namespace GBPVRProgramDatabaseFixer
332              {              {
333                  return this.ToString().GetHashCode();                  return this.ToString().GetHashCode();
334              }              }
335    
336                
337          }          }
338          #endregion          #endregion
339          private static class TABLES          private static class TABLES
# Line 377  namespace GBPVRProgramDatabaseFixer Line 418  namespace GBPVRProgramDatabaseFixer
418                      // check if the xmltv entry has different data from the current program                      // check if the xmltv entry has different data from the current program
419                      if (!xmltv_entry.Equals(program_xmltv_entry))                      if (!xmltv_entry.Equals(program_xmltv_entry))
420                      {                      {
421                          // data is different                          // data is different                        
422                          var updated_program = program;                          var updated_program = (IPROGRAMME)program.Clone();
423    
424                          if (program_xmltv_entry.Title != xmltv_entry.Title)                          if (program_xmltv_entry.Title != xmltv_entry.Title)
425                          {                          {

Legend:
Removed from v.220  
changed lines
  Added in v.221

  ViewVC Help
Powered by ViewVC 1.1.22