/[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 186 by william, Sat Mar 16 19:12:26 2013 UTC
# Line 818  namespace GBPVRProgramDatabaseFixer Line 818  namespace GBPVRProgramDatabaseFixer
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 {0} old gbpvr programs.", programs.Count);
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          {          {
# 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 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.186

  ViewVC Help
Powered by ViewVC 1.1.22