Ejemplo n.º 1
0
        public override Task <bool> RemoveScheduleForProgramAsync(IProgram program, ScheduleRecordingType recordingType)
        {
            IScheduleService scheduleService = GlobalServiceProvider.Instance.Get <IScheduleService>();
            IProgramService  programService  = GlobalServiceProvider.Instance.Get <IProgramService>();
            var canceledProgram = programService.GetProgram(program.ProgramId);

            if (canceledProgram == null)
            {
                return(Task.FromResult(false));
            }

            foreach (Schedule schedule in scheduleService.ListAllSchedules().Where(schedule => new ScheduleBLL(schedule).IsRecordingProgram(canceledProgram, true)))
            {
                switch (schedule.ScheduleType)
                {
                case (int)ScheduleRecordingType.Once:
                    scheduleService.DeleteSchedule(schedule.IdSchedule);
                    break;

                default:
                    // If only single program should be canceled
                    if (recordingType == ScheduleRecordingType.Once)
                    {
                        CancelSingleSchedule(schedule, canceledProgram);
                    }
                    // Full schedule is canceled, including all programs
                    else
                    {
                        CancelFullSchedule(schedule);
                    }
                    break;
                }
            }
            return(Task.FromResult(true));
        }
Ejemplo n.º 2
0
        public override bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType)
        {
            var canceledProgram = TvDatabase.Program.Retrieve(program.ProgramId);

            if (canceledProgram == null)
            {
                return(false);
            }
            foreach (TvDatabase.Schedule schedule in TvDatabase.Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(canceledProgram, true)))
            {
                switch (schedule.ScheduleType)
                {
                case (int)ScheduleRecordingType.Once:
                    schedule.Delete();
                    _tvControl.OnNewSchedule();
                    break;

                default:
                    CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, schedule.IdChannel, program.StartTime);
                    canceledSchedule.Persist();
                    _tvControl.OnNewSchedule();
                    break;
                }
            }
            return(true);
        }
Ejemplo n.º 3
0
        public bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType)
        {
#if TVE3
            var canceledProgram = TvDatabase.Program.Retrieve(program.ProgramId);
            if (canceledProgram == null)
            {
                return(false);
            }
            foreach (TvDatabase.Schedule schedule in TvDatabase.Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(canceledProgram, true)))
            {
                switch (schedule.ScheduleType)
                {
                case (int)ScheduleRecordingType.Once:
                    schedule.Delete();
                    _tvControl.OnNewSchedule();
                    break;

                default:
                    CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, schedule.IdChannel, schedule.StartTime);
                    canceledSchedule.Persist();
                    _tvControl.OnNewSchedule();
                    break;
                }
            }
            return(true);
#else
            IScheduleService scheduleService = GlobalServiceProvider.Instance.Get <IScheduleService>();
            IProgramService  programService  = GlobalServiceProvider.Instance.Get <IProgramService>();
            var canceledProgram = programService.GetProgram(program.ProgramId);
            if (canceledProgram == null)
            {
                return(false);
            }

            foreach (Schedule schedule in scheduleService.ListAllSchedules().Where(schedule => new ScheduleBLL(schedule).IsRecordingProgram(canceledProgram, true)))
            {
                switch (schedule.ScheduleType)
                {
                case (int)ScheduleRecordingType.Once:
                    scheduleService.DeleteSchedule(schedule.IdSchedule);
                    break;

                default:
                    // If only single program should be canceled
                    if (recordingType == ScheduleRecordingType.Once)
                    {
                        CancelSingleSchedule(schedule, canceledProgram);
                    }
                    // Full schedule is canceled, including all programs
                    else
                    {
                        CancelFullSchedule(schedule);
                    }
                    break;
                }
            }
            return(true);
#endif
        }
Ejemplo n.º 4
0
        public override Task <bool> EditScheduleAsync(ISchedule schedule, IChannel channel = null, string title = null, DateTime?from = null, DateTime?to = null, ScheduleRecordingType?recordingType = null, int?preRecordInterval = null, int?postRecordInterval = null, string directory = null, int?priority = null)
        {
            try
            {
                ServiceRegistration.Get <ILogger>().Debug("Editing schedule {0} on channel {1} for {2}, {3} till {4}, type {5}", schedule.ScheduleId, channel.ChannelId, title, from, to, recordingType);
                TvDatabase.Schedule tvSchedule = TvDatabase.Schedule.Retrieve(schedule.ScheduleId);

                tvSchedule.IdChannel = channel.ChannelId;
                if (title != null)
                {
                    tvSchedule.ProgramName = title;
                }
                if (from != null)
                {
                    tvSchedule.StartTime = from.Value;
                }
                if (to != null)
                {
                    tvSchedule.EndTime = to.Value;
                }

                if (recordingType != null)
                {
                    ScheduleRecordingType scheduleRecType = recordingType.Value;
                    tvSchedule.ScheduleType = (int)scheduleRecType;
                }

                if (preRecordInterval != null)
                {
                    tvSchedule.PreRecordInterval = preRecordInterval.Value;
                }
                if (postRecordInterval != null)
                {
                    tvSchedule.PostRecordInterval = postRecordInterval.Value;
                }

                if (directory != null)
                {
                    tvSchedule.Directory = directory;
                }
                if (priority != null)
                {
                    tvSchedule.Priority = priority.Value;
                }

                tvSchedule.Persist();

                _tvControl.OnNewSchedule(); // I don't think this is needed, but doesn't hurt either
                return(Task.FromResult(true));
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Warn(String.Format("Failed to edit schedule {0}", schedule.ScheduleId), ex);
                return(Task.FromResult(false));
            }
        }
Ejemplo n.º 5
0
        public override Task <bool> EditScheduleAsync(ISchedule schedule, IChannel channel = null, string title = null, DateTime?from = null, DateTime?to = null, ScheduleRecordingType?recordingType = null, int?preRecordInterval = null, int?postRecordInterval = null, string directory = null, int?priority = null)
        {
            try
            {
                ServiceRegistration.Get <ILogger>().Debug("Editing schedule {0} on channel {1} for {2}, {3} till {4}, type {5}", schedule.ScheduleId, channel.ChannelId, title, from, to, recordingType);
                IScheduleService scheduleService = GlobalServiceProvider.Get <IScheduleService>();
                Schedule         tvSchedule      = scheduleService.GetSchedule(schedule.ScheduleId);

                tvSchedule.IdChannel = channel.ChannelId;
                if (title != null)
                {
                    tvSchedule.ProgramName = title;
                }
                if (from != null)
                {
                    tvSchedule.StartTime = from.Value;
                }
                if (to != null)
                {
                    tvSchedule.EndTime = to.Value;
                }

                if (recordingType != null)
                {
                    ScheduleRecordingType scheduleRecType = recordingType.Value;
                    tvSchedule.ScheduleType = (int)scheduleRecType;
                }

                if (preRecordInterval != null)
                {
                    tvSchedule.PreRecordInterval = preRecordInterval.Value;
                }
                if (postRecordInterval != null)
                {
                    tvSchedule.PostRecordInterval = postRecordInterval.Value;
                }

                if (directory != null)
                {
                    tvSchedule.Directory = directory;
                }
                if (priority != null)
                {
                    tvSchedule.Priority = priority.Value;
                }

                scheduleService.SaveSchedule(tvSchedule);

                return(Task.FromResult(true));
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Warn(String.Format("Failed to edit schedule {0}", schedule.ScheduleId), ex);
                return(Task.FromResult(false));
            }
        }
Ejemplo n.º 6
0
        public override bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
        {
            IScheduleService scheduleService = GlobalServiceProvider.Instance.Get <IScheduleService>();
            Schedule         tvschedule      = ScheduleFactory.CreateSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime);

            tvschedule.PreRecordInterval  = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
            tvschedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
            tvschedule.ScheduleType       = (int)recordingType;
            scheduleService.SaveSchedule(tvschedule);
            schedule = tvschedule.ToSchedule();
            return(true);
        }
Ejemplo n.º 7
0
        public override bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
        {
            var tvProgram = TvDatabase.Program.Retrieve(program.ProgramId);

            if (tvProgram == null)
            {
                schedule = null;
                return(false);
            }
            if (CreateProgram(tvProgram, (int)recordingType, out schedule))
            {
                _tvControl.OnNewSchedule();
            }
            return(schedule != null);
        }
Ejemplo n.º 8
0
        public bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
        {
#if TVE3
            TvDatabase.Schedule tvSchedule = _tvBusiness.AddSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime, (int)recordingType);
            tvSchedule.ScheduleType       = (int)recordingType;
            tvSchedule.PreRecordInterval  = Int32.Parse(_tvBusiness.GetSetting("preRecordInterval", "5").Value);
            tvSchedule.PostRecordInterval = Int32.Parse(_tvBusiness.GetSetting("postRecordInterval", "5").Value);
            tvSchedule.Persist();
            _tvControl.OnNewSchedule();
            schedule = tvSchedule.ToSchedule();
            return(true);
#else
            IScheduleService scheduleService = GlobalServiceProvider.Instance.Get <IScheduleService>();
            Schedule         tvschedule      = ScheduleFactory.CreateSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime);
            tvschedule.PreRecordInterval  = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
            tvschedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
            tvschedule.ScheduleType       = (int)recordingType;
            scheduleService.SaveSchedule(tvschedule);
            schedule = tvschedule.ToSchedule();
            return(true);
#endif
        }
Ejemplo n.º 9
0
        public override Task <AsyncResult <ISchedule> > CreateScheduleDetailedAsync(IChannel channel, string title, DateTime from, DateTime to, ScheduleRecordingType recordingType, int preRecordInterval, int postRecordInterval, string directory, int priority)
        {
            IScheduleService scheduleService = GlobalServiceProvider.Get <IScheduleService>();
            Schedule         tvSchedule      = ScheduleFactory.CreateSchedule(channel.ChannelId, title, from, to);

            tvSchedule.PreRecordInterval  = preRecordInterval >= 0 ? preRecordInterval : ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
            tvSchedule.PostRecordInterval = postRecordInterval >= 0 ? postRecordInterval : ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
            if (!String.IsNullOrEmpty(directory))
            {
                tvSchedule.Directory = directory;
            }
            if (priority >= 0)
            {
                tvSchedule.Priority = priority;
            }
            tvSchedule.PreRecordInterval  = preRecordInterval;
            tvSchedule.PostRecordInterval = postRecordInterval;
            tvSchedule.ScheduleType       = (int)recordingType;
            tvSchedule.Directory          = directory;
            tvSchedule.Priority           = priority;
            scheduleService.SaveSchedule(tvSchedule);
            ISchedule schedule = tvSchedule.ToSchedule();

            return(Task.FromResult(new AsyncResult <ISchedule>(true, schedule)));
        }
Ejemplo n.º 10
0
        public override async Task <bool> RemoveScheduleForProgramAsync(IProgram program, ScheduleRecordingType recordingType)
        {
            await _initComplete.Task;

            var canceledProgram = TvDatabase.Program.Retrieve(program.ProgramId);

            if (canceledProgram == null)
            {
                return(false);
            }
            var allSchedules      = TvDatabase.Schedule.ListAll();
            var matchingSchedules = allSchedules.Where(schedule => schedule.IsRecordingProgram(canceledProgram, true));

            if (matchingSchedules.Count() == 0)
            {
                List <TvDatabase.Schedule> manualSchedules = new List <TvDatabase.Schedule>();
                //Check for matching manual recordings because they will not match any programs start and/or end times
                foreach (TvDatabase.Schedule schedule in allSchedules.Where(schedule => schedule.IsManual || schedule.ProgramName == "Manual"))
                {
                    if ((canceledProgram.StartTime <= schedule.StartTime && canceledProgram.EndTime >= schedule.StartTime) || //Recording was started during this program
                        (canceledProgram.StartTime <= schedule.EndTime && canceledProgram.EndTime >= schedule.EndTime) ||     //Recording is ending during this program
                        (canceledProgram.StartTime >= schedule.StartTime && canceledProgram.EndTime <= schedule.StartTime))   //The program is "inside" the recording
                    {
                        manualSchedules.Add(schedule);
                    }
                }
                matchingSchedules = manualSchedules;
            }
            //Delete matching schedules
            foreach (TvDatabase.Schedule schedule in matchingSchedules)
            {
                _tvControl.StopRecordingSchedule(schedule.IdSchedule);
                if (schedule.ScheduleType == (int)ScheduleRecordingType.Once || recordingType != ScheduleRecordingType.Once)
                {
                    // Delete single schedule, or whole series
                    schedule.Delete();
                }
                else
                {
                    // Delete this program only
                    CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, schedule.IdChannel, program.StartTime);
                    canceledSchedule.Persist();
                }
                _tvControl.OnNewSchedule();
            }
            return(true);
        }
Ejemplo n.º 11
0
 public override Task <AsyncResult <ISchedule> > CreateScheduleByTimeAsync(IChannel channel, DateTime from, DateTime to, ScheduleRecordingType recordingType)
 {
     return(CreateScheduleByTimeAsync(channel, "Manual", from, to, recordingType));
 }
Ejemplo n.º 12
0
        public override Task <AsyncResult <ISchedule> > CreateScheduleByTimeAsync(IChannel channel, string title, DateTime from, DateTime to, ScheduleRecordingType recordingType)
        {
            IScheduleService scheduleService = GlobalServiceProvider.Get <IScheduleService>();
            Schedule         tvSchedule      = ScheduleFactory.CreateSchedule(channel.ChannelId, title, from, to);

            tvSchedule.PreRecordInterval  = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
            tvSchedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
            tvSchedule.ScheduleType       = (int)recordingType;
            scheduleService.SaveSchedule(tvSchedule);
            var schedule = tvSchedule.ToSchedule();

            return(Task.FromResult(new AsyncResult <ISchedule>(true, schedule)));
        }
Ejemplo n.º 13
0
    public bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
    {
#if TVE3
      TvDatabase.Schedule tvSchedule = _tvBusiness.AddSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime, (int)recordingType);
      tvSchedule.ScheduleType = (int)recordingType;
      tvSchedule.PreRecordInterval = Int32.Parse(_tvBusiness.GetSetting("preRecordInterval", "5").Value);
      tvSchedule.PostRecordInterval = Int32.Parse(_tvBusiness.GetSetting("postRecordInterval", "5").Value);
      tvSchedule.Persist();
      _tvControl.OnNewSchedule();
      schedule = tvSchedule.ToSchedule();
      return true;
#else
      IScheduleService scheduleService = GlobalServiceProvider.Instance.Get<IScheduleService>();
      Schedule tvschedule = ScheduleFactory.CreateSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime);
      tvschedule.PreRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
      tvschedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
      tvschedule.ScheduleType = (int)recordingType;
      scheduleService.SaveSchedule(tvschedule);
      schedule = tvschedule.ToSchedule();
      return true;
#endif
    }
Ejemplo n.º 14
0
        public override Task <AsyncResult <ISchedule> > CreateScheduleAsync(IProgram program, ScheduleRecordingType recordingType)
        {
            IScheduleService scheduleService = GlobalServiceProvider.Instance.Get <IScheduleService>();
            Schedule         tvschedule      = ScheduleFactory.CreateSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime);

            tvschedule.PreRecordInterval  = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
            tvschedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
            tvschedule.ScheduleType       = (int)recordingType;
            scheduleService.SaveSchedule(tvschedule);
            var schedule = tvschedule.ToSchedule();
            var success  = schedule != null;

            return(Task.FromResult(new AsyncResult <ISchedule>(success, schedule)));
        }
 public abstract bool CreateScheduleByTime(IChannel channel, DateTime from, DateTime to, ScheduleRecordingType recordingType, out ISchedule schedule);
Ejemplo n.º 16
0
 public abstract bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule);
Ejemplo n.º 17
0
        public override Task <AsyncResult <ISchedule> > CreateScheduleDetailedAsync(IChannel channel, string title, DateTime from, DateTime to, ScheduleRecordingType recordingType, int preRecordInterval, int postRecordInterval, string directory, int priority)
        {
            TvDatabase.Schedule tvSchedule = _tvBusiness.AddSchedule(channel.ChannelId, title, from, to, (int)recordingType);
            tvSchedule.PreRecordInterval  = preRecordInterval >= 0 ? preRecordInterval : Int32.Parse(_tvBusiness.GetSetting("preRecordInterval", "5").Value);
            tvSchedule.PostRecordInterval = postRecordInterval >= 0 ? postRecordInterval : Int32.Parse(_tvBusiness.GetSetting("postRecordInterval", "5").Value);
            if (!String.IsNullOrEmpty(directory))
            {
                tvSchedule.Directory = directory;
            }
            if (priority >= 0)
            {
                tvSchedule.Priority = priority;
            }
            tvSchedule.Persist();
            _tvControl.OnNewSchedule();
            var schedule = tvSchedule.ToSchedule();

            return(Task.FromResult(new AsyncResult <ISchedule>(true, schedule)));
        }
Ejemplo n.º 18
0
 public override bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
 {
   TvDatabase.Schedule tvSchedule = _tvBusiness.AddSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime, (int)recordingType);
   tvSchedule.ScheduleType = (int)recordingType;
   tvSchedule.PreRecordInterval = Int32.Parse(_tvBusiness.GetSetting("preRecordInterval", "5").Value);
   tvSchedule.PostRecordInterval = Int32.Parse(_tvBusiness.GetSetting("postRecordInterval", "5").Value);
   tvSchedule.Persist();
   _tvControl.OnNewSchedule();
   schedule = tvSchedule.ToSchedule();
   return true;
 }
Ejemplo n.º 19
0
        public override async Task <AsyncResult <ISchedule> > CreateScheduleAsync(IProgram program, ScheduleRecordingType recordingType)
        {
            await _initComplete.Task;

            var       tvProgram = TvDatabase.Program.Retrieve(program.ProgramId);
            ISchedule schedule;

            if (tvProgram == null)
            {
                return(new AsyncResult <ISchedule>(false, null));
            }
            if (CreateProgram(tvProgram, (int)recordingType, out schedule))
            {
                _tvControl.OnNewSchedule();
            }
            var success = schedule != null;

            return(new AsyncResult <ISchedule>(success, schedule));
        }
Ejemplo n.º 20
0
 public override bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType)
 {
   var canceledProgram = TvDatabase.Program.Retrieve(program.ProgramId);
   if (canceledProgram == null)
     return false;
   foreach (TvDatabase.Schedule schedule in TvDatabase.Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(canceledProgram, true)))
   {
     switch (schedule.ScheduleType)
     {
       case (int)ScheduleRecordingType.Once:
         schedule.Delete();
         _tvControl.OnNewSchedule();
         break;
       default:
         CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, schedule.IdChannel, program.StartTime);
         canceledSchedule.Persist();
         _tvControl.OnNewSchedule();
         break;
     }
   }
   return true;
 }
Ejemplo n.º 21
0
 public override bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
 {
   var tvProgram = TvDatabase.Program.Retrieve(program.ProgramId);
   if (tvProgram == null)
   {
     schedule = null;
     return false;
   }
   if (CreateProgram(tvProgram, (int)recordingType, out schedule))
   {
     _tvControl.OnNewSchedule();
   }
   return schedule != null;
 }
Ejemplo n.º 22
0
    public bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType)
    {
#if TVE3
      var canceledProgram = TvDatabase.Program.Retrieve(program.ProgramId);
      if (canceledProgram == null)
        return false;
      foreach (TvDatabase.Schedule schedule in TvDatabase.Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(canceledProgram, true)))
      {
        switch (schedule.ScheduleType)
        {
          case (int)ScheduleRecordingType.Once:
            schedule.Delete();
            _tvControl.OnNewSchedule();
            break;
          default:
            CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, schedule.IdChannel, schedule.StartTime);
            canceledSchedule.Persist();
            _tvControl.OnNewSchedule();
            break;
        }
      }
      return true;
#else
      IScheduleService scheduleService = GlobalServiceProvider.Instance.Get<IScheduleService>();
      IProgramService programService = GlobalServiceProvider.Instance.Get<IProgramService>();
      var canceledProgram = programService.GetProgram(program.ProgramId);
      if (canceledProgram == null)
        return false;

      foreach (Schedule schedule in scheduleService.ListAllSchedules().Where(schedule => new ScheduleBLL(schedule).IsRecordingProgram(canceledProgram, true)))
      {
        switch (schedule.ScheduleType)
        {
          case (int)ScheduleRecordingType.Once:
            scheduleService.DeleteSchedule(schedule.IdSchedule);
            break;
          default:
            // If only single program should be canceled
            if (recordingType == ScheduleRecordingType.Once)
            {
              CancelSingleSchedule(schedule, canceledProgram);
            }
            // Full schedule is canceled, including all programs
            else
            {
              CancelFullSchedule(schedule);
            }
            break;
        }
      }
      return true;
#endif
    }
Ejemplo n.º 23
0
        public override bool CreateScheduleByTime(IChannel channel, DateTime from, DateTime to, ScheduleRecordingType recordingType, out ISchedule schedule)
        {
            IScheduleService scheduleService = GlobalServiceProvider.Get <IScheduleService>();
            Schedule         tvSchedule      = ScheduleFactory.CreateSchedule(channel.ChannelId, "Manual", from, to);

            tvSchedule.PreRecordInterval  = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
            tvSchedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
            tvSchedule.ScheduleType       = (int)recordingType;
            scheduleService.SaveSchedule(tvSchedule);
            schedule = tvSchedule.ToSchedule();
            return(true);
        }
Ejemplo n.º 24
0
    public override bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType)
    {
      IScheduleService scheduleService = GlobalServiceProvider.Instance.Get<IScheduleService>();
      IProgramService programService = GlobalServiceProvider.Instance.Get<IProgramService>();
      var canceledProgram = programService.GetProgram(program.ProgramId);
      if (canceledProgram == null)
        return false;

      foreach (Schedule schedule in scheduleService.ListAllSchedules().Where(schedule => new ScheduleBLL(schedule).IsRecordingProgram(canceledProgram, true)))
      {
        switch (schedule.ScheduleType)
        {
          case (int)ScheduleRecordingType.Once:
            scheduleService.DeleteSchedule(schedule.IdSchedule);
            break;
          default:
            // If only single program should be canceled
            if (recordingType == ScheduleRecordingType.Once)
            {
              CancelSingleSchedule(schedule, canceledProgram);
            }
            // Full schedule is canceled, including all programs
            else
            {
              CancelFullSchedule(schedule);
            }
            break;
        }
      }
      return true;
    }
Ejemplo n.º 25
0
        public override async Task <bool> RemoveScheduleForProgramAsync(IProgram program, ScheduleRecordingType recordingType)
        {
            await _initComplete.Task;

            var canceledProgram = TvDatabase.Program.Retrieve(program.ProgramId);

            if (canceledProgram == null)
            {
                return(false);
            }
            foreach (TvDatabase.Schedule schedule in TvDatabase.Schedule.ListAll().Where(schedule => schedule.IsRecordingProgram(canceledProgram, true)))
            {
                if (schedule.ScheduleType == (int)ScheduleRecordingType.Once || recordingType != ScheduleRecordingType.Once)
                {
                    // Delete single schedule, or whole series
                    schedule.Delete();
                }
                else
                {
                    // Delete this program only
                    CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, schedule.IdChannel, program.StartTime);
                    canceledSchedule.Persist();
                }
                RemoteControl.Instance.OnNewSchedule();
            }
            return(true);
        }
Ejemplo n.º 26
0
        public override async Task <AsyncResult <ISchedule> > CreateScheduleByTimeAsync(IChannel channel, DateTime from, DateTime to, ScheduleRecordingType recordingType)
        {
            await _initComplete.Task;

            TvDatabase.Schedule tvSchedule = new TvDatabase.Schedule(channel.ChannelId, "Manual", from, to);
            tvSchedule.ScheduleType       = (int)recordingType;
            tvSchedule.PreRecordInterval  = Int32.Parse(_tvBusiness.GetSetting("preRecordInterval", "5").Value);
            tvSchedule.PostRecordInterval = Int32.Parse(_tvBusiness.GetSetting("postRecordInterval", "5").Value);
            tvSchedule.Persist();
            _tvControl.OnNewSchedule();
            var schedule = tvSchedule.ToSchedule();

            return(new AsyncResult <ISchedule>(true, schedule));
        }
Ejemplo n.º 27
0
 public abstract Task <AsyncResult <ISchedule> > CreateScheduleAsync(IProgram program, ScheduleRecordingType recordingType);
Ejemplo n.º 28
0
 public override bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule)
 {
   IScheduleService scheduleService = GlobalServiceProvider.Instance.Get<IScheduleService>();
   Schedule tvschedule = ScheduleFactory.CreateSchedule(program.ChannelId, program.Title, program.StartTime, program.EndTime);
   tvschedule.PreRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("preRecordInterval", 5);
   tvschedule.PostRecordInterval = ServiceAgents.Instance.SettingServiceAgent.GetValue("postRecordInterval", 5);
   tvschedule.ScheduleType = (int)recordingType;
   scheduleService.SaveSchedule(tvschedule);
   schedule = tvschedule.ToSchedule();
   return true;
 }
Ejemplo n.º 29
0
 public abstract Task <AsyncResult <ISchedule> > CreateScheduleByTimeAsync(IChannel channel, DateTime from, DateTime to, ScheduleRecordingType recordingType);
 public abstract bool CreateSchedule(IProgram program, ScheduleRecordingType recordingType, out ISchedule schedule);
Ejemplo n.º 31
0
 public abstract Task <bool> RemoveScheduleForProgramAsync(IProgram program, ScheduleRecordingType recordingType);
 public abstract bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType);
Ejemplo n.º 33
0
 public override bool CreateScheduleByTime(IChannel channel, DateTime from, DateTime to, ScheduleRecordingType recordingType, out ISchedule schedule)
 {
     TvDatabase.Schedule tvSchedule = new TvDatabase.Schedule(channel.ChannelId, "Manual", from, to);
     tvSchedule.ScheduleType       = (int)recordingType;
     tvSchedule.PreRecordInterval  = Int32.Parse(_tvBusiness.GetSetting("preRecordInterval", "5").Value);
     tvSchedule.PostRecordInterval = Int32.Parse(_tvBusiness.GetSetting("postRecordInterval", "5").Value);
     tvSchedule.Persist();
     _tvControl.OnNewSchedule();
     schedule = tvSchedule.ToSchedule();
     return(true);
 }
Ejemplo n.º 34
0
 public abstract bool RemoveScheduleForProgram(IProgram program, ScheduleRecordingType recordingType);
 public abstract Task <AsyncResult <ISchedule> > CreateScheduleDetailedAsync(IChannel channel, string title, DateTime from, DateTime to, ScheduleRecordingType recordingType, int preRecordInterval, int postRecordInterval, string directory, int priority);