/[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 179 by william, Sat Mar 16 17:13:23 2013 UTC revision 181 by william, Sat Mar 16 17:56:55 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          private class OldNewProgram
26          {          {
27              public IPROGRAMME OldProgram;              public OldNewProgram() : this(new PROGRAMME(), new PROGRAMME()) { }
28              public IPROGRAMME NewProgram;              public OldNewProgram(IPROGRAMME _old, IPROGRAMME _new) { OldProgram = _old; NewProgram = _new; }
29    
30                public IPROGRAMME OldProgram { get; private set; }
31                public IPROGRAMME NewProgram { get; private set; }
32          }          }
33          public static ISQLLITE Create(string database, EventHandler<EventArgs> OnInstanceCreated)          public static ISQLLITE Create(string database, EventHandler<EventArgs> OnInstanceCreated)
34          {          {
# Line 232  namespace GBPVRProgramDatabaseFixer Line 235  namespace GBPVRProgramDatabaseFixer
235              public IProgramDefinition AsXMLTVProgramDefinition(ISQLLITE sqllite)              public IProgramDefinition AsXMLTVProgramDefinition(ISQLLITE sqllite)
236              {              {
237                  ProgramList.ProgramDefintion definition = new ProgramList.ProgramDefintion();                  ProgramList.ProgramDefintion definition = new ProgramList.ProgramDefintion();
238    
239                  var channel = sqllite.Channels.Find(s => s.oid == this.channel_oid);                  var channel = sqllite.Channels.Find(s => s.oid == this.channel_oid);
240                  definition.ChannelName = channel.display_name;                  var channelname = channel.display_name;
241                  definition.ChannelNumber = (int)channel.channel_number;                  var split = channelname.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
242                    definition.ChannelNumber = Convert.ToInt32(split.First());
243                    definition.ChannelName = string.IsNullOrEmpty(split.Last()) ? string.Empty : split.Last().ToString();
244                  definition.Description = this.description;                  definition.Description = this.description;
245                  definition.Start = this.start_time.ToDateTimeString();                  definition.Start = this.start_time.ToDateTimeString();
246                  definition.Stop = this.end_time.ToDateTimeString();                  definition.Stop = this.end_time.ToDateTimeString();
# Line 301  namespace GBPVRProgramDatabaseFixer Line 307  namespace GBPVRProgramDatabaseFixer
307          public List<SQLLITE.IPROGRAMME> FixGBPVRProgramsDatabase(List<SQLLITE.IPROGRAMME> gbpvr_programs, List<libxmltv.Interfaces.IProgramDefinition> xmltv_programs, out List<SQLLITE.IPROGRAMME> source_invalid)          public List<SQLLITE.IPROGRAMME> FixGBPVRProgramsDatabase(List<SQLLITE.IPROGRAMME> gbpvr_programs, List<libxmltv.Interfaces.IProgramDefinition> xmltv_programs, out List<SQLLITE.IPROGRAMME> source_invalid)
308          {          {
309              source_invalid = new List<IPROGRAMME>();              source_invalid = new List<IPROGRAMME>();
             gbpvr_programs = gbpvr_programs.OrderBy(s => s.start_time).ToList();              
310              List<SQLLITE.IPROGRAMME> source_valid = new List<IPROGRAMME>();              List<SQLLITE.IPROGRAMME> source_valid = new List<IPROGRAMME>();
311                gbpvr_programs = gbpvr_programs.OrderBy(s => s.start_time).ToList();
312                xmltv_programs = xmltv_programs.OrderBy(s => DateTime.Parse(s.Start)).ToList();
313                gbpvr_programs.TrimExcess();
314                xmltv_programs.TrimExcess();
315    
             List<OldNewProgram> source_update = new List<OldNewProgram>();  
             //if (range == null)  
             //{  
             //    gLog.Warn.WriteLine("The DateTimeRange passed in is null...returning the original program list");  
             //    return list;  
             //}  
             //gLog.Warn.WriteLine("FilterProgramsByDateRange has not been implemented");  
               
316              double total = gbpvr_programs.Count;              double total = gbpvr_programs.Count;
317              double index = 0;              double index = 0;
318              double progress = 0;              double progress = 0;
319              foreach (var program in gbpvr_programs)              foreach (var program in gbpvr_programs)
320              {                {
321                  progress = 100.0 * (index / total);                  progress = 100.0 * (index / total);
322                  gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Filtering GBPVR Programs: {0:00}%", (int)progress)));                                  gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Filtering GBPVR Programs: {0:00}%", (int)progress)));                
323                  var channel_oid = program.channel_oid;                  // find an entry in xmltv_programs by Channel Number & StartDate                
324                  var channel = this.Channels.Find(s => s.oid == channel_oid);                  var program_xmltv_entry = program.AsXMLTVProgramDefinition(this);
325                  var start_date = program.start_time;                  var xmltv_entry = xmltv_programs.Find(s => s.ChannelNumber == program_xmltv_entry.ChannelNumber && s.Start == program_xmltv_entry.Start);
                 //var xmltv_entry_list = xmltv_programs.FindAll(s => s.ChannelNumber == channel.channel_number && s.Start == start_date.ToDateTimeString());  
                 var query = from c in xmltv_programs  
                             where  
                             c.ChannelNumber == channel.channel_number &&  
                             c.Start == start_date.ToDateTimeString()  
                             select c;  
   
                 IProgramDefinition xmltv_entry = null;  
                 if (query.Count()-1 > 0)  
                 {  
                     gLog.Verbose.Error.WriteLine("Found more than one entry: Matching channel='{0}' and start='{1}'", channel.channel_number, start_date.ToDateTimeString());  
                     gLog.Verbose.Error.WriteLine("    GB-PVR Program Data: oid='{0}' channel_oid='{1}' name='{2}' sub_title='{3}' description='{4}'", program.oid, program.channel_oid, program.name, program.sub_title, program.description);  
                     if (Debugger.IsAttached)  
                     {                        
                         gLog.Error.WriteLine("    Found: {0} matching entries", query.Count());  
                         int k_index = 0;  
                         foreach (var k in query)  
                         {  
                             gLog.Verbose.Error.WriteLine("    query[{0}]: channel='{1}' start='{2}' ('{3}') title='{4}' subtitle='{5}' description='{6}'", k_index, k.ChannelNumber, k.Start, DateTime.Parse(k.Start).ToString("yyyy/MM/dd HH:mm:ss.fffffff"), k.Title, k.SubTitle, k.Description);  
                             k_index++;  
                         }  
                         Debugger.Break();  
                     }  
                 }  
                 else  
                 {  
                     xmltv_entry = query.FirstOrDefault();  
                 }  
   
326                  if (xmltv_entry == null)                  if (xmltv_entry == null)
327                  {                  {
328                      //gLog.Verbose.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());                      // xmltv entry was not found
329                      source_invalid.Add(program);                                        source_invalid.Add(program);
330                  }                  }
331                  else                  else
332                  {                  {
333                      //gLog.Verbose.Warn.WriteLine("Updating GB-PVR Program (if needed): oid='{0}' channel_oid='{1}' title='{2}' subtitle='{3}' start='{4}'", program.oid, program.channel_oid, program.name, program.sub_title, program.start_time.ToDateTimeString());                      // check if the xmltv entry has different data from the current program
334                      var updated_program = program;                      if(!xmltv_entry.Equals(program_xmltv_entry))
                     bool needsupdate = false;  
                     if (xmltv_entry.Title != program.name)  
                     {  
                         //gLog.Verbose.Warn.WriteLine("    Updating:");  
                         //gLog.Verbose.Warn.WriteLine("        Old Title: {0}", program.name);  
                         //gLog.Verbose.Warn.WriteLine("        New Title: {0}", xmltv_entry.Title);  
                         updated_program.name = xmltv_entry.Title;  
                         needsupdate = true;  
                     }  
                     if (xmltv_entry.SubTitle != program.sub_title)  
335                      {                      {
336                          //gLog.Verbose.Warn.WriteLine("    Updating:");                          // data is different
337                          //gLog.Verbose.Warn.WriteLine("        Old SubTile: {0}", program.sub_title);                          if (Debugger.IsAttached)
338                          //gLog.Verbose.Warn.WriteLine("        New SubTile: {0}", xmltv_entry.SubTitle);                          {
339                          updated_program.sub_title = xmltv_entry.SubTitle;                              Debugger.Break();
340                          needsupdate = true;                          }
                     }  
                     if (xmltv_entry.Description != program.description)  
                     {  
                         //gLog.Verbose.Warn.WriteLine("    Updating:");  
                         //gLog.Verbose.Warn.WriteLine("        Old Descption: {0}", program.description);  
                         //gLog.Verbose.Warn.WriteLine("        New Descption: {0}", xmltv_entry.Description);  
                         updated_program.description = xmltv_entry.Description;  
                         needsupdate = true;  
                     }  
                     if (DateTime.Parse(xmltv_entry.Start) != program.start_time)  
                     {  
                         //gLog.Verbose.Warn.WriteLine("    Updating:");  
                         //gLog.Verbose.Warn.WriteLine("        Old StartTime: {0}", program.start_time.ToDateTimeString());  
                         //gLog.Verbose.Warn.WriteLine("        New StartTime: {0}", DateTime.Parse(xmltv_entry.Start).ToDateTimeString());  
                         updated_program.start_time = DateTime.Parse(xmltv_entry.Start);  
                         needsupdate = true;  
                     }  
                     if (DateTime.Parse(xmltv_entry.Stop) != program.end_time)  
                     {  
                         //gLog.Verbose.Warn.WriteLine("    Updating:");  
                         //gLog.Verbose.Warn.WriteLine("        Old EndTime: {0}", program.end_time.ToDateTimeString());  
                         //gLog.Verbose.Warn.WriteLine("        New EndTime: {0}", DateTime.Parse(xmltv_entry.Stop).ToDateTimeString());  
                         updated_program.end_time = DateTime.Parse(xmltv_entry.Stop);  
                         needsupdate = true;  
                     }  
                       
                     if (needsupdate)  
                     {  
                         OldNewProgram p = new OldNewProgram();  
                         p.OldProgram = program;  
                         p.NewProgram = updated_program;  
                         source_update.Add(p);  
                     }  
                     source_valid.Add(updated_program);  
                 }  
                 index++;  
             }  
   
   
             source_valid = source_valid.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();  
   
             if (source_invalid.Count > 0)  
             {  
                 double source_invalid_count = source_valid.Count;  
                 double source_invalid_index = 0;  
                 double source_invalid_progress = 0;  
                 foreach (var old_program in source_invalid)  
                 {  
                     source_invalid_progress = 100.0 * (source_invalid_index / source_invalid_count);  
                     gLog.ReportProgress(this, new ReportProgressEventArgs((int)source_invalid_progress, string.Format("Removing old GBPVR Programs: {0:00}%", (int)source_invalid_progress)));      
                     // remove database entry  
                     if (!RemoveProgramDatabaseEntry(old_program))  
                     {  
                         gLog.Error.WriteLine("Failed to remove program with oid: '{0}'", old_program.oid);  
                     }  
                     else  
                     {  
                         gLog.Verbose.Info.WriteLine("Removed program with oid: '{0}'", old_program.oid);  
                     }  
                     source_invalid_index++;  
                 }  
             }  
             else  
             {  
                 gLog.Info.WriteLine("No old GB-PVR Programs needed to be removed.");  
             }  
   
             if (source_update.Count > 0)  
             {  
                 double source_update_count = source_valid.Count;  
                 double source_update_index = 0;  
                 double source_update_progress = 0;  
                 foreach (var p in source_update)  
                 {  
                     source_update_progress = 100.0 * (source_update_index / source_update_count);  
                     gLog.ReportProgress(this, new ReportProgressEventArgs((int)source_update_progress, string.Format("Updating GBPVR Programs: {0:00}%", (int)source_update_progress)));      
                     // remove database entry  
                     if (!UpdateProgramDatabaseEntry(p.OldProgram,p.NewProgram))  
                     {  
                         gLog.Error.WriteLine("Failed to update program with oid: '{0}'", p.OldProgram.oid);  
341                      }                      }
342                      else                      else
343                      {                      {
344                          gLog.Verbose.Info.WriteLine("Upated program with oid: '{0}'", p.OldProgram.oid);                          // data is the same
345                      }                      }
                     source_update_index++;  
346                  }                  }
347              }                  index++;
             else  
             {  
                 gLog.Info.WriteLine("No GB-PVR Programs needed to be updated.");  
348              }              }
349    
350              gLog.Info.WriteLine("Total XMLTV Programs: 0x{0:x8}", xmltv_programs.Count);              #region old-code
351              gLog.Info.WriteLine("Updated: 0x{0:x8} GB-PVR Programs", source_valid.Count);              //List<OldNewProgram> source_update = new List<OldNewProgram>();
352              gLog.Info.WriteLine("Removed: 0x{0:x8} GB-PVR Programs", source_invalid.Count);              ////if (range == null)
353              gLog.Info.WriteLine("Total GB-PVR Programs (Updated & Removed): 0x{0:x8}", source_valid.Count + source_invalid.Count);              ////{
354                ////    gLog.Warn.WriteLine("The DateTimeRange passed in is null...returning the original program list");
355                ////    return list;
356                ////}
357                ////gLog.Warn.WriteLine("FilterProgramsByDateRange has not been implemented");            
358                //double total = gbpvr_programs.Count;
359                //double index = 0;
360                //double progress = 0;
361                //foreach (var program in gbpvr_programs)
362                //{  
363                //    progress = 100.0 * (index / total);
364                //    gLog.ReportProgress(this, new ReportProgressEventArgs((int)progress, string.Format("Filtering GBPVR Programs: {0:00}%", (int)progress)));                
365                //    var channel_oid = program.channel_oid;
366                //    var channel = this.Channels.Find(s => s.oid == channel_oid);
367                //    var start_date = program.start_time;
368                //    //var xmltv_entry_list = xmltv_programs.FindAll(s => s.ChannelNumber == channel.channel_number && s.Start == start_date.ToDateTimeString());
369                //    var query = from c in xmltv_programs
370                //                where
371                //                c.ChannelNumber == channel.channel_number &&
372                //                c.Start == start_date.ToDateTimeString()
373                //                select c;
374                //    IProgramDefinition xmltv_entry = null;
375                //    if (query.Count()-1 > 0)
376                //    {
377                //        gLog.Verbose.Error.WriteLine("Found more than one entry: Matching channel='{0}' and start='{1}'", channel.channel_number, start_date.ToDateTimeString());
378                //        gLog.Verbose.Error.WriteLine("    GB-PVR Program Data: oid='{0}' channel_oid='{1}' name='{2}' sub_title='{3}' description='{4}'", program.oid, program.channel_oid, program.name, program.sub_title, program.description);
379                //        if (Debugger.IsAttached)
380                //        {                      
381                //            gLog.Error.WriteLine("    Found: {0} matching entries", query.Count());
382                //            int k_index = 0;
383                //            foreach (var k in query)
384                //            {
385                //                gLog.Verbose.Error.WriteLine("    query[{0}]: channel='{1}' start='{2}' ('{3}') title='{4}' subtitle='{5}' description='{6}'", k_index, k.ChannelNumber, k.Start, DateTime.Parse(k.Start).ToString("yyyy/MM/dd HH:mm:ss.fffffff"), k.Title, k.SubTitle, k.Description);
386                //                k_index++;
387                //            }
388                //            Debugger.Break();
389                //        }
390                //    }
391                //    else
392                //    {
393                //        xmltv_entry = query.FirstOrDefault();
394                //    }
395                //    if (xmltv_entry == null)
396                //    {
397                //        //gLog.Verbose.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());
398                //        source_invalid.Add(program);                  
399                //    }
400                //    else
401                //    {
402                //        //gLog.Verbose.Warn.WriteLine("Updating GB-PVR Program (if needed): oid='{0}' channel_oid='{1}' title='{2}' subtitle='{3}' start='{4}'", program.oid, program.channel_oid, program.name, program.sub_title, program.start_time.ToDateTimeString());
403                //        var updated_program = program;
404                //        bool needsupdate = false;
405                //        if (xmltv_entry.Title != program.name)
406                //        {
407                //            //gLog.Verbose.Warn.WriteLine("    Updating:");
408                //            //gLog.Verbose.Warn.WriteLine("        Old Title: {0}", program.name);
409                //            //gLog.Verbose.Warn.WriteLine("        New Title: {0}", xmltv_entry.Title);
410                //            updated_program.name = xmltv_entry.Title;
411                //            needsupdate = true;
412                //        }
413                //        if (xmltv_entry.SubTitle != program.sub_title)
414                //        {
415                //            //gLog.Verbose.Warn.WriteLine("    Updating:");
416                //            //gLog.Verbose.Warn.WriteLine("        Old SubTile: {0}", program.sub_title);
417                //            //gLog.Verbose.Warn.WriteLine("        New SubTile: {0}", xmltv_entry.SubTitle);
418                //            updated_program.sub_title = xmltv_entry.SubTitle;
419                //            needsupdate = true;
420                //        }
421                //        if (xmltv_entry.Description != program.description)
422                //        {
423                //            //gLog.Verbose.Warn.WriteLine("    Updating:");
424                //            //gLog.Verbose.Warn.WriteLine("        Old Descption: {0}", program.description);
425                //            //gLog.Verbose.Warn.WriteLine("        New Descption: {0}", xmltv_entry.Description);
426                //            updated_program.description = xmltv_entry.Description;
427                //            needsupdate = true;
428                //        }
429                //        if (DateTime.Parse(xmltv_entry.Start) != program.start_time)
430                //        {
431                //            //gLog.Verbose.Warn.WriteLine("    Updating:");
432                //            //gLog.Verbose.Warn.WriteLine("        Old StartTime: {0}", program.start_time.ToDateTimeString());
433                //            //gLog.Verbose.Warn.WriteLine("        New StartTime: {0}", DateTime.Parse(xmltv_entry.Start).ToDateTimeString());
434                //            updated_program.start_time = DateTime.Parse(xmltv_entry.Start);
435                //            needsupdate = true;
436                //        }
437                //        if (DateTime.Parse(xmltv_entry.Stop) != program.end_time)
438                //        {
439                //            //gLog.Verbose.Warn.WriteLine("    Updating:");
440                //            //gLog.Verbose.Warn.WriteLine("        Old EndTime: {0}", program.end_time.ToDateTimeString());
441                //            //gLog.Verbose.Warn.WriteLine("        New EndTime: {0}", DateTime.Parse(xmltv_entry.Stop).ToDateTimeString());
442                //            updated_program.end_time = DateTime.Parse(xmltv_entry.Stop);
443                //            needsupdate = true;
444                //        }                    
445                //        if (needsupdate)
446                //        {
447                //            OldNewProgram p = new OldNewProgram();
448                //            p.OldProgram = program;
449                //            p.NewProgram = updated_program;
450                //            source_update.Add(p);
451                //        }
452                //        source_valid.Add(updated_program);
453                //    }
454                //    index++;
455                //}
456                //source_valid = source_valid.OrderBy(s => s.channel_oid).ThenBy(s => s.start_time).ToList();
457                //source_invalid = source_invalid.OrderBy(s => s.channel_oid).ThenBy(s => s.start_time).ToList();
458                //if (source_invalid.Count > 0)
459                //{
460                //    double source_invalid_count = source_valid.Count;
461                //    double source_invalid_index = 0;
462                //    double source_invalid_progress = 0;
463                //    foreach (var old_program in source_invalid)
464                //    {
465                //        source_invalid_progress = 100.0 * (source_invalid_index / source_invalid_count);
466                //        gLog.ReportProgress(this, new ReportProgressEventArgs((int)source_invalid_progress, string.Format("Removing old GBPVR Programs: {0:00}%", (int)source_invalid_progress)));    
467                //        // remove database entry
468                //        if (!RemoveProgramDatabaseEntry(old_program))
469                //        {
470                //            gLog.Error.WriteLine("Failed to remove program with oid: '{0}'", old_program.oid);
471                //        }
472                //        else
473                //        {
474                //            gLog.Verbose.Info.WriteLine("Removed program with oid: '{0}'", old_program.oid);
475                //        }
476                //        source_invalid_index++;
477                //    }
478                //}
479                //else
480                //{
481                //    gLog.Info.WriteLine("No old GB-PVR Programs needed to be removed.");
482                //}
483                //if (source_update.Count > 0)
484                //{
485                //    double source_update_count = source_valid.Count;
486                //    double source_update_index = 0;
487                //    double source_update_progress = 0;
488                //    foreach (var p in source_update)
489                //    {
490                //        source_update_progress = 100.0 * (source_update_index / source_update_count);
491                //        gLog.ReportProgress(this, new ReportProgressEventArgs((int)source_update_progress, string.Format("Updating GBPVR Programs: {0:00}%", (int)source_update_progress)));    
492                //        // remove database entry
493                //        if (!UpdateProgramDatabaseEntry(p.OldProgram,p.NewProgram))
494                //        {
495                //            gLog.Error.WriteLine("Failed to update program with oid: '{0}'", p.OldProgram.oid);
496                //        }
497                //        else
498                //        {
499                //            gLog.Verbose.Info.WriteLine("Upated program with oid: '{0}'", p.OldProgram.oid);
500                //        }
501                //        source_update_index++;
502                //    }
503                //}
504                //else
505                //{
506                //    gLog.Info.WriteLine("No GB-PVR Programs needed to be updated.");
507                //}
508                //gLog.Info.WriteLine("Total XMLTV Programs: 0x{0:x8}", xmltv_programs.Count);
509                //gLog.Info.WriteLine("Updated: 0x{0:x8} GB-PVR Programs", source_valid.Count);
510                //gLog.Info.WriteLine("Removed: 0x{0:x8} GB-PVR Programs", source_invalid.Count);
511                //gLog.Info.WriteLine("Total GB-PVR Programs (Updated & Removed): 0x{0:x8}", source_valid.Count + source_invalid.Count);
512                #endregion
513    
514              return source_valid;              return source_valid;
515          }          }
# Line 680  namespace GBPVRProgramDatabaseFixer Line 716  namespace GBPVRProgramDatabaseFixer
716          private bool RemoveProgramDatabaseEntry(IPROGRAMME old_program)          private bool RemoveProgramDatabaseEntry(IPROGRAMME old_program)
717          {          {
718              bool result = false;              bool result = false;
719              try              //try
720              {                              //{                
721                  using (SQLiteConnection con = CreateConnection())              //    using (SQLiteConnection con = CreateConnection())
722                  {              //    {
723                      try              //        try
724                      {              //        {
725                          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);
726                          con.Open();              //            con.Open();
727                          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);
728                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);              //            gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
729                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))              //            using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
730                          {              //            {
731                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));              //                cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));
732                              int rowsupdated = cmd.ExecuteNonQuery();              //                int rowsupdated = cmd.ExecuteNonQuery();
733                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);              //                gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
734                          }              //            }
735                          con.Clone();              //            con.Clone();
736                          result = true;              //            result = true;
737                      }              //        }
738                      catch (SQLiteException ex)              //        catch (SQLiteException ex)
739                      {              //        {
740                          gLog.Error.WriteLine(ex.ToString());              //            gLog.Error.WriteLine(ex.ToString());
741                          result = false;              //            result = false;
742                      }              //        }
743                  }              //    }
744              }              //}
745              catch (Exception ex)              //catch (Exception ex)
746              {              //{
747                  gLog.Error.WriteLine(ex.ToString());              //    gLog.Error.WriteLine(ex.ToString());
748                  result = false;              //    result = false;
749              }              //}
750              return result;              return result;
751          }          }
752          private bool UpdateProgramDatabaseEntry(IPROGRAMME old_program, IPROGRAMME new_program)          private bool UpdateProgramDatabaseEntry(IPROGRAMME old_program, IPROGRAMME new_program)
753          {          {
754              bool result = false;              bool result = false;
755              try              //try
756              {              //{
757                  using (SQLiteConnection con = CreateConnection())              //    using (SQLiteConnection con = CreateConnection())
758                  {              //    {
759                      try              //        try
760                      {              //        {
761                          gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", old_program.oid);              //            gLog.Verbose.Info.WriteLine("Updating old program with oid: '{0}'", old_program.oid);
762                          con.Open();              //            con.Open();
763                          //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);
764                          string command_text = string.Empty;              //            string command_text = string.Empty;
765                          StringBuilder builder = new StringBuilder();              //            StringBuilder builder = new StringBuilder();
766                //            builder.AppendLine(string.Format("UPDATE [{0}]", TABLES.PROGRAMME));
767                          builder.AppendLine(string.Format("UPDATE [{0}]", TABLES.PROGRAMME));              //            builder.Append("SET ");
768                          builder.Append("SET ");              //            builder.AppendFormat("[name]=@name,");
769                          builder.AppendFormat("[name]=@name,");              //            builder.AppendFormat("[sub_title]=@sub_title,");
770                          builder.AppendFormat("[sub_title]=@sub_title,");              //            builder.AppendFormat("[description]=@description,");
771                          builder.AppendFormat("[description]=@description,");              //            builder.AppendFormat("[start_time]=@start_time,");
772                          builder.AppendFormat("[start_time]=@start_time,");              //            builder.AppendFormat("[end_time]=@end_time,");
773                          builder.AppendFormat("[end_time]=@end_time,");              //            builder.AppendFormat("[channel_oid]=@channel_oid,");
774                          builder.AppendFormat("[channel_oid]=@channel_oid,");              //            builder.AppendFormat("[unique_identifier]=@unique_identifier,");
775                          builder.AppendFormat("[unique_identifier]=@unique_identifier,");              //            builder.AppendFormat("[rating]=@rating");
776                          builder.AppendFormat("[rating]=@rating");              //            builder.AppendLine(" WHERE [oid] = @oid");
777                          builder.AppendLine(" WHERE [oid] = @oid");              //            command_text = builder.ToString();
778                //            gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);
779                          command_text = builder.ToString();              //            using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))
780                          gLog.Verbose.Debug.WriteLine("Executing Command: '{0}'", command_text);              //            {
781                          using (SQLiteCommand cmd = new SQLiteCommand(command_text, con))              //                cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));
782                          {              //                cmd.Parameters.Add(new SQLiteParameter("name", new_program.name));
783                              cmd.Parameters.Add(new SQLiteParameter("oid", old_program.oid));              //                cmd.Parameters.Add(new SQLiteParameter("sub_title", new_program.sub_title));
784                              cmd.Parameters.Add(new SQLiteParameter("name", new_program.name));              //                cmd.Parameters.Add(new SQLiteParameter("description", new_program.description));
785                              cmd.Parameters.Add(new SQLiteParameter("sub_title", new_program.sub_title));              //                cmd.Parameters.Add(new SQLiteParameter("start_time", new_program.start_time));
786                              cmd.Parameters.Add(new SQLiteParameter("description", new_program.description));              //                cmd.Parameters.Add(new SQLiteParameter("end_time", new_program.end_time));
787                              cmd.Parameters.Add(new SQLiteParameter("start_time", new_program.start_time));              //                cmd.Parameters.Add(new SQLiteParameter("channel_oid", new_program.channel_oid));
788                              cmd.Parameters.Add(new SQLiteParameter("end_time", new_program.end_time));              //                cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));
789                              cmd.Parameters.Add(new SQLiteParameter("channel_oid", new_program.channel_oid));              //                cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));
790                              cmd.Parameters.Add(new SQLiteParameter("unique_identifier", new_program.unique_identifier));              //                int rowsupdated = cmd.ExecuteNonQuery();
791                              cmd.Parameters.Add(new SQLiteParameter("rating", new_program.rating));              //                gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);
792                              int rowsupdated = cmd.ExecuteNonQuery();              //            }
793                              gLog.Verbose.Info.WriteLine("Updated '{0}' rows", rowsupdated);              //            con.Clone();
794                          }              //            result = true;
795                          con.Clone();              //        }
796                          result = true;              //        catch (SQLiteException ex)
797                      }              //        {
798                      catch (SQLiteException ex)              //            gLog.Error.WriteLine(ex.ToString());
799                      {              //            result = false;
800                          gLog.Error.WriteLine(ex.ToString());              //        }
801                          result = false;              //    }
802                      }              //}
803                  }              //catch (Exception ex)
804              }              //{
805              catch (Exception ex)              //    gLog.Error.WriteLine(ex.ToString());
806              {              //    result = false;
807                  gLog.Error.WriteLine(ex.ToString());              //}
                 result = false;  
             }  
808              return result;              return result;
809          }          }
810      }      }

Legend:
Removed from v.179  
changed lines
  Added in v.181

  ViewVC Help
Powered by ViewVC 1.1.22