/[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 182 by william, Sat Mar 16 18:23:11 2013 UTC revision 183 by william, Sat Mar 16 18:30:41 2013 UTC
# Line 24  namespace GBPVRProgramDatabaseFixer Line 24  namespace GBPVRProgramDatabaseFixer
24          IDateTimeRange GetProgramsDateRange(List<SQLLITE.IPROGRAMME> programs);          IDateTimeRange GetProgramsDateRange(List<SQLLITE.IPROGRAMME> programs);
25          List<IOldNewProgram> FixGBPVRProgramsDatabase(List<SQLLITE.IPROGRAMME> gbpvr_programs, List<libxmltv.Interfaces.IProgramDefinition> xmltv_programs, out List<SQLLITE.IPROGRAMME> removed_programs);          List<IOldNewProgram> FixGBPVRProgramsDatabase(List<SQLLITE.IPROGRAMME> gbpvr_programs, List<libxmltv.Interfaces.IProgramDefinition> xmltv_programs, out List<SQLLITE.IPROGRAMME> removed_programs);
26    
27            void RemoveOldGBPVRPrograms(List<SQLLITE.IPROGRAMME> programs);
28            void UpdateGBPVRPrograms(List<IOldNewProgram> programs);
29    
30      }      }
31      public class SQLLITE : ISQLLITE      public class SQLLITE : ISQLLITE
32      {      {
# Line 782  namespace GBPVRProgramDatabaseFixer Line 785  namespace GBPVRProgramDatabaseFixer
785              }              }
786          }          }
787    
788            public void RemoveOldGBPVRPrograms(List<SQLLITE.IPROGRAMME> programs)
789            {
790                gLog.Info.WriteLine("Removing {0} old gbpvr programs.", programs.Count);
791                double total = programs.Count;
792                double index = 0;
793                double progress = 0;
794                foreach (var program in programs)
795                {
796                    progress = 100.0 * (index / total);
797                    gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Removing GBPVR Programs: {0:00}%", (int)progress)));                
798                    if (!RemoveProgramDatabaseEntry(program))
799                    {
800                        gLog.Error.WriteLine("Failed to remove program with oid: {0}", program.oid);
801                    }
802                    index++;
803                }
804            }
805            public void UpdateGBPVRPrograms(List<IOldNewProgram> programs)
806            {
807                gLog.Info.WriteLine("Updating {0} gbpvr programs.", programs.Count);
808                double total = programs.Count;
809                double index = 0;
810                double progress = 0;
811                foreach (var program in programs)
812                {
813                    progress = 100.0 * (index / total);
814                    gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Updating GBPVR Programs: {0:00}%", (int)progress)));                
815                    if (program.NewProgram.Equals(program.OldProgram))
816                    {
817                        // program does not need to be updated
818                        continue;
819                    }
820                    else
821                    {
822                        if (!UpdateProgramDatabaseEntry(program.NewProgram))
823                        {
824                            gLog.Error.WriteLine("Failed to update program with oid: {0}", program.NewProgram.oid);
825                        }
826                    }
827                    index++;
828                }
829            }
830    
831          private bool RemoveProgramDatabaseEntry(IPROGRAMME old_program)          private bool RemoveProgramDatabaseEntry(IPROGRAMME old_program)
832          {          {
833              bool result = false;              bool result = false;
834              //try              try
835              //{                              {
836              //    using (SQLiteConnection con = CreateConnection())                  using (SQLiteConnection con = CreateConnection())
837              //    {                  {
838              //        try                      try
839              //        {                      {
840              //            gLog.Verbose.Info.WriteLine("Removing old program with oid: '{0}'", old_program.oid);                          gLog.Verbose.Info.WriteLine("Removing old program with oid: '{0}'", old_program.oid);
841              //            con.Open();                          con.Open();
842              //            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);
843              //            gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
844              //            using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
845              //            {                          {
846              //                cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));
847              //                int rowsupdated = cmd.ExecuteNonQuery();                              int rowsupdated = cmd.ExecuteNonQuery();
848              //                gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
849              //            }                          }
850              //            con.Clone();                          con.Clone();
851              //            result = true;                          result = true;
852              //        }                      }
853              //        catch (SQLiteException ex)                      catch (SQLiteException ex)
854              //        {                      {
855              //            gLog.Error.WriteLine(ex.ToString());                          gLog.Error.WriteLine(ex.ToString());
856              //            result = false;                          result = false;
857              //        }                      }
858              //    }                  }
859              //}              }
860              //catch (Exception ex)              catch (Exception ex)
861              //{              {
862              //    gLog.Error.WriteLine(ex.ToString());                  gLog.Error.WriteLine(ex.ToString());
863              //    result = false;                  result = false;
864              //}              }
865              return result;              return result;
866          }          }
867          private bool UpdateProgramDatabaseEntry(IPROGRAMME old_program, IPROGRAMME new_program)          private bool UpdateProgramDatabaseEntry(IPROGRAMME new_program)
868          {          {
869              bool result = false;              bool result = false;
870              //try              try
871              //{              {
872              //    using (SQLiteConnection con = CreateConnection())                  using (SQLiteConnection con = CreateConnection())
873              //    {                  {
874              //        try                      try
875              //        {                      {
876              //            gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", old_program.oid);                          gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", new_program.oid);
877              //            con.Open();                          con.Open();
878              //            //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);
879              //            string command_text = string.Empty;                          string command_text = string.Empty;
880              //            StringBuilder builder = new StringBuilder();                          StringBuilder builder = new StringBuilder();
881              //            builder.AppendLine(string.Format("UPDATE [{0}]", TABLES.PROGRAMME));                          builder.AppendLine(string.Format("UPDATE [{0}]", TABLES.PROGRAMME));
882              //            builder.Append("SET ");                          builder.Append("SET ");
883              //            builder.AppendFormat("[name]=@name,");                          builder.AppendFormat("[name]=@name,");
884              //            builder.AppendFormat("[sub_title]=@sub_title,");                          builder.AppendFormat("[sub_title]=@sub_title,");
885              //            builder.AppendFormat("[description]=@description,");                          builder.AppendFormat("[description]=@description,");
886              //            builder.AppendFormat("[start_time]=@start_time,");                          builder.AppendFormat("[start_time]=@start_time,");
887              //            builder.AppendFormat("[end_time]=@end_time,");                          builder.AppendFormat("[end_time]=@end_time,");
888              //            builder.AppendFormat("[channel_oid]=@channel_oid,");                          builder.AppendFormat("[channel_oid]=@channel_oid,");
889              //            builder.AppendFormat("[unique_identifier]=@unique_identifier,");                          builder.AppendFormat("[unique_identifier]=@unique_identifier,");
890              //            builder.AppendFormat("[rating]=@rating");                          builder.AppendFormat("[rating]=@rating");
891              //            builder.AppendLine(" WHERE [oid] = @oid");                          builder.AppendLine(" WHERE [oid] = @oid");
892              //            command_text = builder.ToString();                          command_text = builder.ToString();
893              //            gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
894              //            using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
895              //            {                          {
896              //                cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));                              cmd.Parameters.Add(new SQLiteParameter("oid", new_program.oid));
897              //                cmd.Parameters.Add(new SQLiteParameter("name", new_program.name));                              cmd.Parameters.Add(new SQLiteParameter("name", new_program.name));
898              //                cmd.Parameters.Add(new SQLiteParameter("sub_title", new_program.sub_title));                              cmd.Parameters.Add(new SQLiteParameter("sub_title", new_program.sub_title));
899              //                cmd.Parameters.Add(new SQLiteParameter("description", new_program.description));                              cmd.Parameters.Add(new SQLiteParameter("description", new_program.description));
900              //                cmd.Parameters.Add(new SQLiteParameter("start_time", new_program.start_time));                              cmd.Parameters.Add(new SQLiteParameter("start_time", new_program.start_time));
901              //                cmd.Parameters.Add(new SQLiteParameter("end_time", new_program.end_time));                              cmd.Parameters.Add(new SQLiteParameter("end_time", new_program.end_time));
902              //                cmd.Parameters.Add(new SQLiteParameter("channel_oid", new_program.channel_oid));                              cmd.Parameters.Add(new SQLiteParameter("channel_oid", new_program.channel_oid));
903              //                cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));                              cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));
904              //                cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));                              cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));
905              //                int rowsupdated = cmd.ExecuteNonQuery();                              int rowsupdated = cmd.ExecuteNonQuery();
906              //                gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
907              //            }                          }
908              //            con.Clone();                          con.Clone();
909              //            result = true;                          result = true;
910              //        }                      }
911              //        catch (SQLiteException ex)                      catch (SQLiteException ex)
912              //        {                      {
913              //            gLog.Error.WriteLine(ex.ToString());                          gLog.Error.WriteLine(ex.ToString());
914              //            result = false;                          result = false;
915              //        }                      }
916              //    }                  }
917              //}              }
918              //catch (Exception ex)              catch (Exception ex)
919              //{              {
920              //    gLog.Error.WriteLine(ex.ToString());                  gLog.Error.WriteLine(ex.ToString());
921              //    result = false;                  result = false;
922              //}              }
923              return result;              return result;
924          }          }
925      }      }

Legend:
Removed from v.182  
changed lines
  Added in v.183

  ViewVC Help
Powered by ViewVC 1.1.22