/[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 184 by william, Sat Mar 16 18:50:06 2013 UTC revision 187 by william, Sat Mar 16 19:13:18 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;              //double total = programs.Count;
822              double index = 0;              //double index = 0;
823              double progress = 0;              //double progress = 0;
824              foreach (var program in programs)              //foreach (var program in programs)
825              {              //{
826                  progress = 100.0 * (index / total);              //    progress = 100.0 * (index / total);
827                  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("Removing GBPVR Programs: {0:00}%", (int)progress)));
828                  if (!RemoveProgramDatabaseEntry(program))              //    if (!RemoveProgramDatabaseEntry(program))
829                  {              //    {
830                      gLog.Error.WriteLine("Failed to remove program with oid: {0}", program.oid);              //        gLog.Error.WriteLine("Failed to remove program with oid: {0}", program.oid);
831                  }              //    }
832                  index++;              //    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)          public void UpdateGBPVRPrograms(List<IOldNewProgram> programs)
840          {          {
841              gLog.Info.WriteLine("Updating {0} gbpvr programs.", programs.Count);              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("Updating 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 (program.NewProgram.Equals(program.OldProgram))                  if (program.NewProgram.Equals(program.OldProgram))
850                  {                  {
851                      // program does not need to be updated                      // program does not need to be updated
# Line 849  namespace GBPVRProgramDatabaseFixer Line 853  namespace GBPVRProgramDatabaseFixer
853                  }                  }
854                  else                  else
855                  {                  {
856                      if (!UpdateProgramDatabaseEntry(program.NewProgram))                      if (!InsertProgramDatabaseEntry(program.NewProgram))
857                      {                      {
858                          gLog.Error.WriteLine("Failed to update program with oid: {0}", program.NewProgram.oid);                          gLog.Error.WriteLine("Failed to insert program with oid: {0}", program.NewProgram.oid);
859                      }                      }
860                  }                  }
861                  index++;                  index++;
862              }              }
863          }          }
864    
865            private bool RemoveAllProgramDatabaseEntries()
866            {
867                bool result = false;
868                try
869                {
870                    using (SQLiteConnection con = CreateConnection())
871                    {
872                        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                            con.Close();
894                        }
895                    }
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 867  namespace GBPVRProgramDatabaseFixer Line 910  namespace GBPVRProgramDatabaseFixer
910                  {                  {
911                      try                      try
912                      {                      {
913                          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);
914                          con.Open();                          con.Open();
915                          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);
916                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);                          //gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
917                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
918                          {                          {
919                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));
920                              int rowsupdated = cmd.ExecuteNonQuery();                              int rowsupdated = cmd.ExecuteNonQuery();
921                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);                              //gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
922                            }
923                            result = true;
924                        }
925                        catch (SQLiteException ex)
926                        {
927                            gLog.Error.WriteLine(ex.ToString());
928                            result = false;
929                        }
930                        finally
931                        {
932                            con.Close();
933                        }
934                    }
935                }
936                catch (Exception ex)
937                {
938                    gLog.Error.WriteLine(ex.ToString());
939                    result = false;
940                }
941                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;                          result = true;
988                      }                      }
989                      catch (SQLiteException ex)                      catch (SQLiteException ex)
# Line 906  namespace GBPVRProgramDatabaseFixer Line 1013  namespace GBPVRProgramDatabaseFixer
1013                  {                  {
1014                      try                      try
1015                      {                      {
1016                          gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", new_program.oid);                          //gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", new_program.oid);
1017                          con.Open();                          con.Open();
1018                          //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);
1019                          string command_text = string.Empty;                          string command_text = string.Empty;
# 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))
1035                          {                          {
1036                              cmd.Parameters.Add(new SQLiteParameter("oid", new_program.oid));                              cmd.Parameters.Add(new SQLiteParameter("oid", new_program.oid));
# Line 936  namespace GBPVRProgramDatabaseFixer Line 1043  namespace GBPVRProgramDatabaseFixer
1043                              cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));                              cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));
1044                              cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));                              cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));
1045                              int rowsupdated = cmd.ExecuteNonQuery();                              int rowsupdated = cmd.ExecuteNonQuery();
1046                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);                              //gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
1047                          }                          }
1048    
1049                          result = true;                          result = true;

Legend:
Removed from v.184  
changed lines
  Added in v.187

  ViewVC Help
Powered by ViewVC 1.1.22