예제 #1
0
        private void GetAndProcessRecordings(SynchronizeRecordingsContext context, ChannelType channelType)
        {
            var groups = Proxies.ControlService.GetAllRecordingGroups(channelType, RecordingGroupMode.GroupBySchedule).Result;

            foreach (RecordingGroup group in groups)
            {
                var recordings = Proxies.ControlService.GetRecordingsForSchedule(group.ScheduleId, includeNonExisting: true).Result;
                foreach (RecordingSummary recording in recordings)
                {
                    if (!context.ContainsRecording(recording))
                    {
                        if (context.AddRecording(recording))
                        {
                            if (!File.Exists(recording.RecordingFileName))
                            {
                                context.MissingRecordings.Add(recording);
                            }
                        }
                    }
                    if (_processingBackgroundWorker.CancellationPending)
                    {
                        break;
                    }
                }
            }
        }
예제 #2
0
 private void ScanDirectory(SynchronizeRecordingsContext context, string folder)
 {
     try
     {
         if (!_processingBackgroundWorker.CancellationPending &&
             Directory.Exists(folder))
         {
             DirectoryInfo dirInfo = new DirectoryInfo(folder);
             foreach (DirectoryInfo subDirInfo in dirInfo.GetDirectories())
             {
                 ScanDirectory(context, subDirInfo.FullName);
             }
             foreach (FileInfo fileInfo in dirInfo.GetFiles())
             {
                 foreach (string extension in _extensions)
                 {
                     if (fileInfo.Name.EndsWith(extension, StringComparison.CurrentCultureIgnoreCase))
                     {
                         if (!context.ContainsRecording(fileInfo.FullName))
                         {
                             ImportRecording(context, fileInfo.FullName);
                             break;
                         }
                     }
                     if (_processingBackgroundWorker.CancellationPending)
                     {
                         break;
                     }
                 }
             }
         }
     }
     catch
     {
         // In case of an error, simply skip this directory.
     }
 }
 private void ScanDirectory(SynchronizeRecordingsContext context, string folder)
 {
     try
     {
         if (!_processingBackgroundWorker.CancellationPending
             && Directory.Exists(folder))
         {
             DirectoryInfo dirInfo = new DirectoryInfo(folder);
             foreach (DirectoryInfo subDirInfo in dirInfo.GetDirectories())
             {
                 ScanDirectory(context, subDirInfo.FullName);
             }
             foreach (FileInfo fileInfo in dirInfo.GetFiles())
             {
                 foreach (string extension in _extensions)
                 {
                     if (fileInfo.Name.EndsWith(extension, StringComparison.CurrentCultureIgnoreCase))
                     {
                         if (!context.ContainsRecording(fileInfo.FullName))
                         {
                             ImportRecording(context, fileInfo.FullName);
                             break;
                         }
                     }
                     if (_processingBackgroundWorker.CancellationPending)
                     {
                         break;
                     }
                 }
             }
         }
     }
     catch
     {
         // In case of an error, simply skip this directory.
     }
 }
        private void GetAndProcessRecordings(SynchronizeRecordingsContext context, ChannelType channelType)
        {
            var groups = Proxies.ControlService.GetAllRecordingGroups(channelType, RecordingGroupMode.GroupBySchedule).Result;

            foreach (RecordingGroup group in groups)
            {
                var recordings = Proxies.ControlService.GetRecordingsForSchedule(group.ScheduleId, includeNonExisting: true).Result;
                foreach (RecordingSummary recording in recordings)
                {
                    if (!context.ContainsRecording(recording))
                    {
                        if (context.AddRecording(recording))
                        {
                            if (!File.Exists(recording.RecordingFileName))
                            {
                                context.MissingRecordings.Add(recording);
                            }
                        }
                    }
                    if (_processingBackgroundWorker.CancellationPending)
                    {
                        break;
                    }
                }
            }
        }