Ejemplo n.º 1
0
 protected override bool UpdateRecordingStatus(IProgram program, RecordingStatus newStatus)
 {
     if (ProgramComparer.Instance.Equals(_selectedProgram, program))
     {
         IsSingleRecordingScheduled = newStatus.HasFlag(RecordingStatus.Scheduled);
         IsSeriesRecordingScheduled = newStatus.HasFlag(RecordingStatus.SeriesScheduled);
     }
     return(base.UpdateRecordingStatus(program, newStatus));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Add series recording options for program
        /// </summary>
        protected void AddRecordingOptions(ItemsList items, IProgram program, RecordingStatus status)
        {
            bool isRecording = status.HasFlag(RecordingStatus.Recording);

            if (program != null)
            {
                bool          isRunning    = DateTime.Now >= program.StartTime && DateTime.Now <= program.EndTime;
                ILocalization localization = ServiceRegistration.Get <ILocalization>();
                if (status.HasFlag(RecordingStatus.SeriesScheduled))
                {
                    if (isRecording || program.EndTime > DateTime.Now)
                    {
                        items.Add(new ListItem(Consts.KEY_NAME, localization.ToString(isRecording ? "[SlimTvClient.StopCurrentRecording]"
              : "[SlimTvClient.DeleteSingle]", program.Title))
                        {
                            Command = new AsyncMethodDelegateCommand(() => CreateOrDeleteSchedule(program, ScheduleRecordingType.Once))
                        });
                    }
                    items.Add(new ListItem(Consts.KEY_NAME, "[SlimTvClient.DeleteFullSchedule]")
                    {
                        Command = new AsyncMethodDelegateCommand(() => CreateOrDeleteSchedule(program, ScheduleRecordingType.EveryTimeOnEveryChannel))
                    });
                }
                else
                {
                    string prompt = null;
                    if (isRecording)
                    {
                        prompt = "[SlimTvClient.StopCurrentRecording]";
                    }
                    else if (isRunning)
                    {
                        prompt = "[SlimTvClient.RecordCurrentProgram]";
                    }
                    else if (status.HasFlag(RecordingStatus.Scheduled))
                    {
                        prompt = "[SlimTvClient.DeleteSchedule]";
                    }
                    else if (program.EndTime > DateTime.Now)
                    {
                        prompt = "[SlimTvClient.CreateSchedule]";
                    }
                    if (prompt != null)
                    {
                        items.Add(new ListItem(Consts.KEY_NAME, localization.ToString(prompt, program.Title))
                        {
                            Command = new AsyncMethodDelegateCommand(() => CreateOrDeleteSchedule(program))
                        });
                    }
                    items.Add(
                        new ListItem(Consts.KEY_NAME, "[SlimTvClient.RecordSeries]")
                    {
                        Command = new MethodDelegateCommand(() => SlimTvExtScheduleModel.RecordSeries(program))
                    });
                }
            }
            if (_programExtensions == null)
            {
                BuildExtensions();
            }
            ILocalization loc = ServiceRegistration.Get <ILocalization>();

            foreach (KeyValuePair <Guid, TvExtension> programExtension in _programExtensions)
            {
                TvExtension extension = programExtension.Value;
                // First check if this extension applies for the selected program
                if (!extension.Extension.IsAvailable(program))
                {
                    continue;
                }

                items.Add(
                    new ListItem(Consts.KEY_NAME, loc.ToString(extension.Caption))
                {
                    Command = new MethodDelegateCommand(() => extension.Extension.ProgramAction(program))
                });
            }
        }
 protected override bool UpdateRecordingStatus(IProgram program, RecordingStatus newStatus)
 {
   if (ProgramComparer.Instance.Equals(_selectedProgram, program))
   {
     IsSingleRecordingScheduled = newStatus.HasFlag(RecordingStatus.Scheduled);
     IsSeriesRecordingScheduled = newStatus.HasFlag(RecordingStatus.SeriesScheduled);
   }
   return base.UpdateRecordingStatus(program, newStatus);
 }