예제 #1
0
        private void OnLoadRecordings()
        {
            try
            {
                for (int i = 0; i < Recordings.Count; i++)
                {
                    Recordings.RemoveAt(i);
                }

                RegionManager.Regions[RegionNames.RecordingRegion].RemoveAll();

                foreach (var recording in TvHeadend.GetRecordings())
                {
                    Recordings.Add(recording);
                }

                foreach (var recording in Recordings.OrderBy(r => r.Start))
                {
                    var navigationParams = new NavigationParameters {
                        { "DataContext", recording }
                    };
                    RegionManager.RequestNavigate(RegionNames.RecordingRegion, new Uri("Recording", UriKind.Relative), NavigationCompleted, navigationParams);
                }

                EventAggregator.GetEvent <StatusChangedEvent>().Publish(new StatusInfo($"{Recordings.Count} Recordings."));
            }
            catch (Exception ex)
            {
                EventAggregator.GetEvent <StatusChangedEvent>().Publish(new StatusInfo(ex.Message));
            }
        }
예제 #2
0
        private void OnDelete()
        {
            //ToDo B: Use Mahapps Dialogs
            //ToDo B: complete list
            switch (Recording.Status)
            {
            case "Completed OK":
                if (MessageBox.Show($"Do you really want to delete the recorded file {Recording.Title} from the server?", "Are you sure?", MessageBoxButton.YesNoCancel) == MessageBoxResult.Yes)
                {
                    TvHeadend.DeleteRecordedFile(Recording);
                }
                break;

            case "Scheduled for recording":
                if (MessageBox.Show($"Do you really want to delete the recording schedule {Recording.Title}?", "Are you sure?", MessageBoxButton.YesNoCancel) == MessageBoxResult.Yes)
                {
                    TvHeadend.RemoveRecordingSchedule(Recording);
                }
                break;

            case "Not enough disk space":
                TvHeadend.DeleteRecordedFile(Recording);
                break;

            case "Time missed":
                TvHeadend.DeleteRecordedFile(Recording);
                break;
            }

            Recording = null;
            EventAggregator.GetEvent <RecordingChangedEvent>().Publish();
        }
예제 #3
0
 private void OnReloadChannels()
 {
     try
     {
         Channels?.Clear();
         Channels = TvHeadend.GetChannels();
         EventAggregator.GetEvent <StatusChangedEvent>().Publish(new StatusInfo($"{Channels.Count} Channels."));
     }
     catch (System.Exception ex)
     {
         EventAggregator.GetEvent <StatusChangedEvent>().Publish(new StatusInfo(ex.Message));
     }
 }
예제 #4
0
        static int Main(string[] args)
        {
            var currentAction = "";

            try
            {
                currentAction = "PrepareArgs";
                args          = PrepareArgs(args);
                var joinedArgs = string.Join(" ", args);

                //first parameter is -help: reply help info then return
                if (args[0].ToLower().StartsWith("-help"))
                {
                    WriteHelp();
                    return(0);
                }

                //Check if at least more than 2 parameters are given, if not reply help info then return
                if (args.Length < 2)
                {
                    Console.WriteLine("Error: insufficient arguments!");
                    WriteHelp();
                    return(-1);
                }

                currentAction = "new TvHeadend(args)";
                ITvHeadend tvHeadend = new TvHeadend(args);

                //Action -channels
                if (args[0].ToLower().StartsWith("-channels"))
                {
                    currentAction = "GetChannels(tvHeadend, joinedArgs.ToLower().Contains(\"-num\"))";
                    return(GetChannels(tvHeadend, joinedArgs.ToLower().Contains("-num")));
                }

                //Try to get recording info from args
                currentAction = "tvHeadend.GetRecordingFromArgs(args)";
                var recording = tvHeadend.GetRecordingFromArgs(args); // , 1
                if (recording == null)
                {
                    Console.WriteLine("Error: unable to resolve channel name");
                    return(-1);
                }

                //Recording Actions
                if (args[0].ToLower().StartsWith("-acreate"))
                {
                    currentAction = "CreateRecording(tvHeadend, recording)";
                    return(CreateRecording(tvHeadend, recording));
                }

                if (args[0].ToLower().StartsWith("-aremove"))
                {
                    currentAction = "RemoveRecording(tvHeadend, recording)";
                    return(RemoveRecording(tvHeadend, recording));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error {currentAction}: {ex.Message}");
                return(-1);
            }

            return(0);
        }
예제 #5
0
 public void TestMethod1()
 {
     var tvHeadend = new TvHeadend("http://192.168.63.10:9981/", true);
     var version   = tvHeadend.GetTvHeadendVersion();
 }