/[xmltv_parser]/trunk/GBPVRProgramDatabaseFixer/Program.cs
ViewVC logotype

Diff of /trunk/GBPVRProgramDatabaseFixer/Program.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 154 by william, Thu Mar 14 16:56:05 2013 UTC revision 158 by william, Thu Mar 14 19:41:32 2013 UTC
# Line 12  namespace GBPVRProgramDatabaseFixer Line 12  namespace GBPVRProgramDatabaseFixer
12  {  {
13      class Program      class Program
14      {      {
15            static SQLLITE sqlite;
16          static string XMLTV_FILE = "";          static string XMLTV_FILE = "";
17          static string GBPVR_DATABASE = "";          static string GBPVR_DATABASE = "";
18    
19            static bool LOADING_XMLTV_FILE = false;
20          static bool XMLTV_INSTANCE_CREATED = false;          static bool XMLTV_INSTANCE_CREATED = false;
21            static int LAST_REPORTED_XMLTV_PROGRESS = 0;
22    
         static int LAST_REPORTED_XMLTV_PROGRESS =0;  
23    
24          static FileInfo fi_XMLTVFILE;          static bool LOADING_GBPVR_DATABASE = false;
25            static bool SQLLIST_INSTANCE_CREATED = false;
26            static int LAST_REPORTED_SQLLITE_PROGRESS = 0;
27    
28            static FileInfo fi_XMLTVFILE;
29            static FileInfo fi_GBPVRDATABASE;
30          static void CreateLog()          static void CreateLog()
31          {          {
32              string log_path = Application.StartupPath;              string log_path = Application.StartupPath;
# Line 78  namespace GBPVRProgramDatabaseFixer Line 85  namespace GBPVRProgramDatabaseFixer
85              }              }
86    
87              LoadXMLTVFile();              LoadXMLTVFile();
88                LoadGBPVRDatabase();
89                PerformDatabaseProcessing();      
90            }
91    
92            static void ConsoleOverwritePreviosLine(string format, params object[] args)
93            {
94                Console.WriteLine(format,args);
95                Console.SetCursorPosition(0, Console.CursorTop - 1);
96          }          }
97    
98          static void gLog_ReportProgress(object sender, ReportProgressEventArgs e)          static void gLog_ReportProgress(object sender, ReportProgressEventArgs e)
99          {          {
100              if (LAST_REPORTED_XMLTV_PROGRESS != e.Progress)              if (!XMLTV_INSTANCE_CREATED && LOADING_XMLTV_FILE)
101                {
102                    if (LAST_REPORTED_XMLTV_PROGRESS != e.Progress)
103                    {
104                        ConsoleOverwritePreviosLine("XMLTV: {0} Loading: {1:00}%", fi_XMLTVFILE.Name, e.Progress);
105                        LAST_REPORTED_XMLTV_PROGRESS = e.Progress;
106                        if (e.Progress == 100)
107                        {
108                            Console.WriteLine("XMLTV: {0} Loading: {1:00}%", fi_XMLTVFILE.Name, e.Progress);
109                        }
110                    }
111                }
112                if (!SQLLIST_INSTANCE_CREATED && LOADING_GBPVR_DATABASE)
113              {              {
114                  Console.WriteLine("XMLTV: {0} Loading: {1:00}%", fi_XMLTVFILE.Name, e.Progress);                  if (LAST_REPORTED_SQLLITE_PROGRESS != e.Progress)
115                  LAST_REPORTED_XMLTV_PROGRESS = e.Progress;                  {
116                        ConsoleOverwritePreviosLine("SQLLITE: {0} Loading: {1:00}%", fi_XMLTVFILE.Name, e.Progress);
117                        LAST_REPORTED_SQLLITE_PROGRESS = e.Progress;
118                        if (e.Progress == 100)
119                        {
120                            Console.WriteLine("SQLLITE: {0} Loading: {1:00}%", fi_XMLTVFILE.Name, e.Progress);
121                        }
122                    }
123              }              }
124          }          }
125          static void LoadXMLTVFile()          static void LoadXMLTVFile()
126          {          {
127                LOADING_XMLTV_FILE = true;
128              if (string.IsNullOrEmpty(XMLTV_FILE))              if (string.IsNullOrEmpty(XMLTV_FILE))
129              {              {
130                  gLog.Error.WriteLine("XMLTV File is either a null or empty string.");                  gLog.Error.WriteLine("XMLTV File is either a null or empty string.");
131                    LOADING_XMLTV_FILE = false;
132                  return;                  return;
133              }              }
134              fi_XMLTVFILE = new FileInfo(XMLTV_FILE);              fi_XMLTVFILE = new FileInfo(XMLTV_FILE);
135              if (!fi_XMLTVFILE.Exists)              if (!fi_XMLTVFILE.Exists)
136              {              {
137                  gLog.Error.WriteLine("Could not find XMLTV File: {0}", fi_XMLTVFILE.FullName);                  gLog.Error.WriteLine("Could not find XMLTV File: {0}", fi_XMLTVFILE.FullName);
138                    LOADING_XMLTV_FILE = false;
139                  return;                  return;
140              }              }
141    
142              XMLTV.Create(fi_XMLTVFILE.FullName, new EventHandler<EventArgs>(XMLTV_OnInstanceCreated));              XMLTV.Create(fi_XMLTVFILE.FullName, new EventHandler<EventArgs>(XMLTV_OnInstanceCreated));
143              while (!XMLTV_INSTANCE_CREATED) { Application.DoEvents(); }              while (!XMLTV_INSTANCE_CREATED) { Application.DoEvents(); }
144                LOADING_XMLTV_FILE = false;
145          }          }
   
146          static void XMLTV_OnInstanceCreated(object sender, EventArgs e) { XMLTV_INSTANCE_CREATED = true; }          static void XMLTV_OnInstanceCreated(object sender, EventArgs e) { XMLTV_INSTANCE_CREATED = true; }
147    
148            static void LoadGBPVRDatabase()
149            {
150                LOADING_GBPVR_DATABASE = true;
151                if (string.IsNullOrEmpty(GBPVR_DATABASE))
152                {
153                    gLog.Error.WriteLine("GBPVR Datbase is either a null or empty string.");
154                    LOADING_GBPVR_DATABASE = false;
155                    return;
156                }
157                fi_GBPVRDATABASE = new FileInfo(GBPVR_DATABASE);
158                if (!fi_GBPVRDATABASE.Exists)
159                {
160                    gLog.Error.WriteLine("Could not find GBPVR Database: {0}", fi_GBPVRDATABASE.FullName);
161                    LOADING_GBPVR_DATABASE = false;
162                    return;
163                }
164    
165                sqlite = new SQLLITE(fi_GBPVRDATABASE.FullName, new EventHandler<EventArgs>(SQLLITE_OnInstanceCreated));
166                while (!SQLLIST_INSTANCE_CREATED) { Application.DoEvents(); }
167                LOADING_GBPVR_DATABASE = false;
168            }
169            static void SQLLITE_OnInstanceCreated(object sender, EventArgs e) { SQLLIST_INSTANCE_CREATED = true; }
170    
171    
172            static List<SQLLITE.IPROGRAMME> gbpvr_programs;
173            static List<SQLLITE.IRECORDING_SCHEDULE> gbpvr_recordings;
174            static List<libxmltv.Interfaces.IXMLTVProgram> xmltv_programs;
175            static void PerformDatabaseProcessing()
176            {
177                gbpvr_programs = sqlite.Programs;
178                gbpvr_recordings = sqlite.Recordings;
179                xmltv_programs = XMLTV.GetPrograms();
180                CheckScheduledRecordingsForDiscrepancies();
181                CheckProgramsForDiscrepancies();
182            }
183    
184            static void CheckScheduledRecordingsForDiscrepancies()
185            {
186                gLog.Warn.WriteLine("CheckScheduledRecordingsForDiscrepancies() has not been implemented");
187            }
188            static void CheckProgramsForDiscrepancies()
189            {
190                gLog.Warn.WriteLine("CheckProgramsForDiscrepancies() has not been implemented");
191            }
192      }      }
193  }  }

Legend:
Removed from v.154  
changed lines
  Added in v.158

  ViewVC Help
Powered by ViewVC 1.1.22