Esempio n. 1
0
        }     // ProcessEpgPayload

        static void ProcessEpgPayload(byte[] data, SqlCeConnection cn)
        {
            var tvaMain = XmlSerialization.Deserialize <TvaMain>(data, true);

            if ((tvaMain == null) ||
                (tvaMain.ProgramDescription == null) ||
                (tvaMain.ProgramDescription.LocationTable == null) ||
                (tvaMain.ProgramDescription.LocationTable.Schedule == null))
            {
                Console.WriteLine("Empty or invalid data!");
                // there's nothing to process
                return;
            } // if
            var tvaSchedule = tvaMain.ProgramDescription.LocationTable.Schedule;

            var epgService = EpgService.FromItem(tvaSchedule);

            epgService.GetDatabaseId(cn);

            Log(">> Service {0} (db {1}): {2} events (t{3})", epgService.ServiceId, epgService.ServiceDatabaseId, epgService.Events.Length, Thread.CurrentThread.ManagedThreadId);

            // TODO: Provide fallback mechanism for deleting events pertaining to this service
            if (epgService.Events.Length == 0)
            {
                return;
            }

            var startTime = epgService.Events[0].StartTime;
            var today     = new DateTime(startTime.Year, startTime.Month, startTime.Day, 0, 0, 0).ToUniversalTime();
            var tomorrow  = today + new TimeSpan(1, 0, 0, 0);

            EpgDbSerialization.DeleteEvents(cn, epgService.ServiceDatabaseId, today, tomorrow);

            epgService.Save(cn);
        } // ProcessFile
Esempio n. 2
0
        }     // ForceUiCulture

        static void PrepareDatabase()
        {
            Console.Write("Conecting to database...");
            UpdateDbStatus(1);
            Console.WriteLine(" ok");

            Console.Write("Deleting old EPG data...");
            EpgDbSerialization.DeleteAllEvents(DbFile, null, DateTime.Now - new TimeSpan(6, 0, 0));
            Console.WriteLine(" ok");

            if (XmlFilesPath != null)
            {
                Console.Write("Deleting old EPG XML data...");
                foreach (var file in Directory.GetFiles(XmlFilesPath, "*.xml"))
                {
                    try
                    {
                        File.Delete(file);
                    }
                    catch
                    {
                        // ignore
                    }
                } // foreach
                Console.WriteLine(" ok");
            }     // if
        }         // PrepareDatabase