/[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 175 by william, Sat Mar 16 16:06:20 2013 UTC revision 176 by william, Sat Mar 16 16:22:43 2013 UTC
# Line 22  namespace GBPVRProgramDatabaseFixer Line 22  namespace GBPVRProgramDatabaseFixer
22      }      }
23      public class SQLLITE : ISQLLITE      public class SQLLITE : ISQLLITE
24      {      {
25            private struct OldNewProgram
26            {
27                public IPROGRAMME OldProgram;
28                public IPROGRAMME NewProgram;
29            }
30          public static ISQLLITE Create(string database, EventHandler<EventArgs> OnInstanceCreated)          public static ISQLLITE Create(string database, EventHandler<EventArgs> OnInstanceCreated)
31          {          {
32              return new SQLLITE(database, OnInstanceCreated);              return new SQLLITE(database, OnInstanceCreated);
# Line 298  namespace GBPVRProgramDatabaseFixer Line 303  namespace GBPVRProgramDatabaseFixer
303              source_invalid = new List<IPROGRAMME>();              source_invalid = new List<IPROGRAMME>();
304              gbpvr_programs = gbpvr_programs.OrderBy(s => s.start_time).ToList();                          gbpvr_programs = gbpvr_programs.OrderBy(s => s.start_time).ToList();            
305              List<SQLLITE.IPROGRAMME> source_valid = new List<IPROGRAMME>();              List<SQLLITE.IPROGRAMME> source_valid = new List<IPROGRAMME>();
306    
307                List<OldNewProgram> source_update = new List<OldNewProgram>();
308              //if (range == null)              //if (range == null)
309              //{              //{
310              //    gLog.Warn.WriteLine("The DateTimeRange passed in is null...returning the original program list");              //    gLog.Warn.WriteLine("The DateTimeRange passed in is null...returning the original program list");
# Line 347  namespace GBPVRProgramDatabaseFixer Line 354  namespace GBPVRProgramDatabaseFixer
354                  if (xmltv_entry == null)                  if (xmltv_entry == null)
355                  {                  {
356                      gLog.Warn.WriteLine("Invalidating GB-PVR Program: oid='{0}' channel_oid='{1}' title='{2}' start='{3}'", program.oid, program.channel_oid, program.name, program.start_time.ToDateTimeString());                      gLog.Warn.WriteLine("Invalidating GB-PVR Program: oid='{0}' channel_oid='{1}' title='{2}' start='{3}'", program.oid, program.channel_oid, program.name, program.start_time.ToDateTimeString());
357                      source_invalid.Add(program);                      source_invalid.Add(program);                  
                     // remove database entry  
                     if (!RemoveProgramDatabaseEntry(program))  
                     {  
                         gLog.Error.WriteLine("Failed to remove entry with oid: '{0}'", program.oid);  
                     }  
358                  }                  }
359                  else                  else
360                  {                  {
# Line 402  namespace GBPVRProgramDatabaseFixer Line 404  namespace GBPVRProgramDatabaseFixer
404                      source_valid.Add(updated_program);                      source_valid.Add(updated_program);
405                      if (needsupdate)                      if (needsupdate)
406                      {                      {
407                          // update database entry                          //// update database entry
408                          if (!UpdateProgramDatabaseEntry(program, updated_program))                          //if (!UpdateProgramDatabaseEntry(program, updated_program))
409                          {                          //{
410                              gLog.Error.WriteLine("Failed to update entry with oid: '{0}'", program.oid);                          //    gLog.Error.WriteLine("Failed to update entry with oid: '{0}'", program.oid);
411                          }                          //}
412                            OldNewProgram p = new OldNewProgram();
413                            p.OldProgram = program;
414                            p.NewProgram = updated_program;
415                            source_update.Add(p);
416                      }                      }
417                      
418                  }                  }
419                  index++;                  index++;
420              }              }
421    
             //for (int i = 0; i < programs.Count(); i++)  
             //{  
             //    var gbpvr_entry = gbpvr[i];  
             //    var xmltv_entry = gbpvr_entry.AsXMLTVProgramDefinition(sqlite);  
             //    if (!xmltv[i].Equals(xmltv_entry))  
             //    {  
             //        gLog.Warn.WriteLine("Warning GBPVR Program oid: {0} might be invalid", gbpvr_entry.oid);  
             //    }  
             //}  
422    
423              source_valid = source_valid.OrderBy(s => s.channel_oid).ThenBy(s => s.start_time).ToList();              source_valid = source_valid.OrderBy(s => s.channel_oid).ThenBy(s => s.start_time).ToList();
424              source_invalid = source_invalid.OrderBy(s => s.channel_oid).ThenBy(s => s.start_time).ToList();              source_invalid = source_invalid.OrderBy(s => s.channel_oid).ThenBy(s => s.start_time).ToList();
425    
426                if (source_invalid.Count > 0)
427                {
428                    foreach (var old_program in source_invalid)
429                    {
430                        // remove database entry
431                        if (!RemoveProgramDatabaseEntry(old_program))
432                        {
433                            gLog.Error.WriteLine("Failed to remove program with oid: '{0}'", old_program.oid);
434                        }
435                        else
436                        {
437                            gLog.Info.WriteLine("Removed program with oid: '{0}'", old_program.oid);
438                        }
439                    }
440                }
441                else
442                {
443                    gLog.Info.WriteLine("No old GB-PVR Programs needed to be removed.");
444                }
445    
446                if (source_update.Count > 0)
447                {
448                    foreach (var p in source_update)
449                    {
450                        // remove database entry
451                        if (!UpdateProgramDatabaseEntry(p.OldProgram,p.NewProgram))
452                        {
453                            gLog.Error.WriteLine("Failed to update program with oid: '{0}'", p.OldProgram.oid);
454                        }
455                        else
456                        {
457                            gLog.Info.WriteLine("Upated program with oid: '{0}'", p.OldProgram.oid);
458                        }
459                    }
460                }
461                else
462                {
463                    gLog.Info.WriteLine("No GB-PVR Programs needed to be updated.");
464                }
465    
466              gLog.Info.WriteLine("Total XMLTV Programs: 0x{0:x8}", xmltv_programs.Count);              gLog.Info.WriteLine("Total XMLTV Programs: 0x{0:x8}", xmltv_programs.Count);
467              gLog.Info.WriteLine("Updated: 0x{0:x8} GB-PVR Programs", source_valid.Count);              gLog.Info.WriteLine("Updated: 0x{0:x8} GB-PVR Programs", source_valid.Count);
468              gLog.Info.WriteLine("Removed: 0x{0:x8} GB-PVR Programs", source_invalid.Count);              gLog.Info.WriteLine("Removed: 0x{0:x8} GB-PVR Programs", source_invalid.Count);
# Line 641  namespace GBPVRProgramDatabaseFixer Line 679  namespace GBPVRProgramDatabaseFixer
679                  {                  {
680                      try                      try
681                      {                      {
682                          gLog.Info.WriteLine("Removing old program with oid: '{0}'", old_program.oid);                          gLog.Verbose.Info.WriteLine("Removing old program with oid: '{0}'", old_program.oid);
683                          con.Open();                          con.Open();
684                          string command_text = string.Format(@"DELETE FROM [{0}] WHERE [oid] = @oid;", TABLES.PROGRAMME);                          string command_text = string.Format(@"DELETE FROM [{0}] WHERE [oid] = @oid;", TABLES.PROGRAMME);
685                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
# Line 649  namespace GBPVRProgramDatabaseFixer Line 687  namespace GBPVRProgramDatabaseFixer
687                          {                          {
688                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));
689                              int rowsupdated = cmd.ExecuteNonQuery();                              int rowsupdated = cmd.ExecuteNonQuery();
690                              gLog.Info.WriteLine("Updated '{0}' rows", rowsupdated);                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
691                          }                          }
692                          con.Clone();                          con.Clone();
693                          result = true;                          result = true;
# Line 677  namespace GBPVRProgramDatabaseFixer Line 715  namespace GBPVRProgramDatabaseFixer
715                  {                  {
716                      try                      try
717                      {                      {
718                          gLog.Info.WriteLine("Updating old program with oid: '{0}'", old_program.oid);                          gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", old_program.oid);
719                          con.Open();                          con.Open();
720                          //string command_text = string.Format(@"UPDATE [{0}] SET [name]=@name,[sub_title]=@subtitle, WHERE [OID] = @oid", TABLES.PROGRAMME);                          //string command_text = string.Format(@"UPDATE [{0}] SET [name]=@name,[sub_title]=@subtitle, WHERE [OID] = @oid", TABLES.PROGRAMME);
721                          string command_text = string.Empty;                          string command_text = string.Empty;
# Line 709  namespace GBPVRProgramDatabaseFixer Line 747  namespace GBPVRProgramDatabaseFixer
747                              cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));                              cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));
748                              cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));                              cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));
749                              int rowsupdated = cmd.ExecuteNonQuery();                              int rowsupdated = cmd.ExecuteNonQuery();
750                              gLog.Info.WriteLine("Updated '{0}' rows", rowsupdated);                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
751                          }                          }
752                          con.Clone();                          con.Clone();
753                          result = true;                          result = true;

Legend:
Removed from v.175  
changed lines
  Added in v.176

  ViewVC Help
Powered by ViewVC 1.1.22