/[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 185 by william, Sat Mar 16 18:55:49 2013 UTC revision 188 by william, Sat Mar 16 19:14:11 2013 UTC
# Line 817  namespace GBPVRProgramDatabaseFixer Line 817  namespace GBPVRProgramDatabaseFixer
817    
818          public void RemoveOldGBPVRPrograms(List<SQLLITE.IPROGRAMME> programs)          public void RemoveOldGBPVRPrograms(List<SQLLITE.IPROGRAMME> programs)
819          {          {
820              gLog.Info.WriteLine("Removing {0} old gbpvr programs.", programs.Count);              gLog.Info.WriteLine("Removing all gbpvr programs.");
821                //double total = programs.Count;
822                //double index = 0;
823                //double progress = 0;
824                //foreach (var program in programs)
825                //{
826                //    progress = 100.0 * (index / total);
827                //    gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Removing GBPVR Programs: {0:00}%", (int)progress)));
828                //    if (!RemoveProgramDatabaseEntry(program))
829                //    {
830                //        gLog.Error.WriteLine("Failed to remove program with oid: {0}", program.oid);
831                //    }
832                //    index++;
833                //}
834                  if (!RemoveAllProgramDatabaseEntries())
835                  {
836                      gLog.Error.WriteLine("Failed to remove one or more program entries");
837                  }
838            }
839            public void UpdateGBPVRPrograms(List<IOldNewProgram> programs)
840            {
841                gLog.Info.WriteLine("Inserting {0} gbpvr programs.", programs.Count);
842              double total = programs.Count;              double total = programs.Count;
843              double index = 0;              double index = 0;
844              double progress = 0;              double progress = 0;
845              foreach (var program in programs)              foreach (var program in programs)
846              {              {
847                  progress = 100.0 * (index / total);                  progress = 100.0 * (index / total);
848                  gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Removing GBPVR Programs: {0:00}%", (int)progress)));                  gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Updating/Inserting GBPVR Programs: {0:00}%", (int)progress)));
849                  if (!RemoveProgramDatabaseEntry(program))                  //if (program.NewProgram.Equals(program.OldProgram))
850                    //{
851                    //    // program does not need to be updated
852                    //    continue;
853                    //}
854                    //else
855                    //{
856                    if (!InsertProgramDatabaseEntry(program.NewProgram))
857                  {                  {
858                      gLog.Error.WriteLine("Failed to remove program with oid: {0}", program.oid);                      gLog.Error.WriteLine("Failed to insert program with oid: {0}", program.NewProgram.oid);
859                  }                  }
860                    //}
861                  index++;                  index++;
862              }              }
863          }          }
864          public void UpdateGBPVRPrograms(List<IOldNewProgram> programs)  
865            private bool RemoveAllProgramDatabaseEntries()
866          {          {
867              gLog.Info.WriteLine("Updating {0} gbpvr programs.", programs.Count);              bool result = false;
868              double total = programs.Count;              try
             double index = 0;  
             double progress = 0;  
             foreach (var program in programs)  
869              {              {
870                  progress = 100.0 * (index / total);                  using (SQLiteConnection con = CreateConnection())
                 gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Updating GBPVR Programs: {0:00}%", (int)progress)));  
                 if (program.NewProgram.Equals(program.OldProgram))  
                 {  
                     // program does not need to be updated  
                     continue;  
                 }  
                 else  
871                  {                  {
872                      if (!UpdateProgramDatabaseEntry(program.NewProgram))                      try
873                        {
874                            //gLog.Verbose.Info.WriteLine("Removing old program with oid: '{0}'", old_program.oid);
875                            con.Open();
876                            string command_text = string.Format(@"DELETE FROM [{0}];", TABLES.PROGRAMME);
877                            //gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
878                            using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
879                            {
880                                //cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));
881                                int rowsupdated = cmd.ExecuteNonQuery();
882                                //gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
883                            }
884                            result = true;
885                        }
886                        catch (SQLiteException ex)
887                        {
888                            gLog.Error.WriteLine(ex.ToString());
889                            result = false;
890                        }
891                        finally
892                      {                      {
893                          gLog.Error.WriteLine("Failed to update program with oid: {0}", program.NewProgram.oid);                          con.Close();
894                      }                      }
895                  }                  }
                 index++;  
896              }              }
897                catch (Exception ex)
898                {
899                    gLog.Error.WriteLine(ex.ToString());
900                    result = false;
901                }
902                return result;
903          }          }
   
904          private bool RemoveProgramDatabaseEntry(IPROGRAMME old_program)          private bool RemoveProgramDatabaseEntry(IPROGRAMME old_program)
905          {          {
906              bool result = false;              bool result = false;
# Line 897  namespace GBPVRProgramDatabaseFixer Line 940  namespace GBPVRProgramDatabaseFixer
940              }              }
941              return result;              return result;
942          }          }
943            private bool InsertProgramDatabaseEntry(IPROGRAMME new_program)
944            {
945                bool result = false;
946                try
947                {
948                    using (SQLiteConnection con = CreateConnection())
949                    {
950                        try
951                        {
952                            //gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", new_program.oid);
953                            con.Open();
954                            //string command_text = string.Format(@"UPDATE [{0}] SET [name]=@name,[sub_title]=@subtitle, WHERE [OID] = @oid", TABLES.PROGRAMME);
955                            string command_text = string.Empty;
956                            StringBuilder builder = new StringBuilder();
957                            builder.AppendLine(string.Format("INSERT INTO [{0}]", TABLES.PROGRAMME));
958                            builder.Append("VALUES (");
959                            builder.AppendFormat("[oid]=@oid,");
960                            builder.AppendFormat("[name]=@name,");
961                            builder.AppendFormat("[sub_title]=@sub_title,");
962                            builder.AppendFormat("[description]=@description,");
963                            builder.AppendFormat("[start_time]=@start_time,");
964                            builder.AppendFormat("[end_time]=@end_time,");
965                            builder.AppendFormat("[channel_oid]=@channel_oid,");
966                            builder.AppendFormat("[unique_identifier]=@unique_identifier,");
967                            builder.AppendFormat("[rating]=@rating");
968                            //builder.AppendLine(" WHERE [oid] = @oid");
969                            builder.AppendFormat(");");
970                            command_text = builder.ToString();
971                            //gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
972                            using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
973                            {
974                                cmd.Parameters.Add(new SQLiteParameter("oid", new_program.oid));
975                                cmd.Parameters.Add(new SQLiteParameter("name", new_program.name));
976                                cmd.Parameters.Add(new SQLiteParameter("sub_title", new_program.sub_title));
977                                cmd.Parameters.Add(new SQLiteParameter("description", new_program.description));
978                                cmd.Parameters.Add(new SQLiteParameter("start_time", new_program.start_time));
979                                cmd.Parameters.Add(new SQLiteParameter("end_time", new_program.end_time));
980                                cmd.Parameters.Add(new SQLiteParameter("channel_oid", new_program.channel_oid));
981                                cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));
982                                cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));
983                                int rowsupdated = cmd.ExecuteNonQuery();
984                                //gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
985                            }
986    
987                            result = true;
988                        }
989                        catch (SQLiteException ex)
990                        {
991                            gLog.Error.WriteLine(ex.ToString());
992                            result = false;
993                        }
994                        finally
995                        {
996                            con.Close();
997                        }
998                    }
999                }
1000                catch (Exception ex)
1001                {
1002                    gLog.Error.WriteLine(ex.ToString());
1003                    result = false;
1004                }
1005                return result;
1006            }
1007          private bool UpdateProgramDatabaseEntry(IPROGRAMME new_program)          private bool UpdateProgramDatabaseEntry(IPROGRAMME new_program)
1008          {          {
1009              bool result = false;              bool result = false;
# Line 921  namespace GBPVRProgramDatabaseFixer Line 1028  namespace GBPVRProgramDatabaseFixer
1028                          builder.AppendFormat("[channel_oid]=@channel_oid,");                          builder.AppendFormat("[channel_oid]=@channel_oid,");
1029                          builder.AppendFormat("[unique_identifier]=@unique_identifier,");                          builder.AppendFormat("[unique_identifier]=@unique_identifier,");
1030                          builder.AppendFormat("[rating]=@rating");                          builder.AppendFormat("[rating]=@rating");
1031                          builder.AppendLine(" WHERE [oid] = @oid");                          builder.AppendLine(" WHERE [oid] = @oid;");
1032                          command_text = builder.ToString();                          command_text = builder.ToString();
1033                          //gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);                          //gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
1034                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))

Legend:
Removed from v.185  
changed lines
  Added in v.188

  ViewVC Help
Powered by ViewVC 1.1.22