Пример #1
0
        public bool GetCurrentProgram(IChannel channel, out IProgram program)
        {
            program = null;

            Channel indexChannel = channel as Channel;

            if (indexChannel == null)
            {
                return(false);
            }

            if (!CheckConnection(indexChannel.ServerIndex))
            {
                return(false);
            }

            try
            {
                WebProgramDetailed tvProgram = TvServer(indexChannel.ServerIndex).GetCurrentProgramOnChannel(channel.ChannelId);
                if (tvProgram != null)
                {
                    program = new Program(tvProgram, indexChannel.ServerIndex);
                    return(true);
                }
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Error(ex.Message);
            }
            return(false);
        }
        public bool GetRecordingStatus(IProgram program, out RecordingStatus recordingStatus)
        {
            recordingStatus = RecordingStatus.None;

            Program indexProgram = program as Program;

            if (indexProgram == null)
            {
                return(false);
            }

            if (!CheckConnection(indexProgram.ServerIndex))
            {
                return(false);
            }

            try
            {
                WebProgramDetailed programDetailed = TvServer(indexProgram.ServerIndex).GetProgramDetailedById(program.ProgramId);
                recordingStatus = Program.GetRecordingStatus(programDetailed);
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Пример #3
0
        public ScheduleViewModel(WebProgramDetailed program)
            : this(program.StartTime, program.EndTime, program.Title, program.ChannelId)
        {
            ProgramId = program.Id;

            ChannelName = Connections.Current.TAS.GetChannelDetailedById(program.ChannelId).Title;
        }
Пример #4
0
        public ProgramDetailsViewModel(WebProgramDetailed program)
        {
            Program = program;

            var channel = Connections.Current.TAS.GetChannelDetailedById(program.ChannelId);

            ChannelName = channel.Title;
            ChannelId   = channel.Id;
        }
Пример #5
0
 public Program(WebProgramDetailed webProgram, int serverIndex)
 {
     ServerIndex = serverIndex;
       Description = webProgram.Description;
       StartTime = webProgram.StartTime;
       EndTime = webProgram.EndTime;
       Genre = webProgram.Genre;
       Title = webProgram.Title;
       ChannelId = webProgram.IdChannel;
       ProgramId = webProgram.IdProgram;
 }
Пример #6
0
 public Program(WebProgramDetailed webProgram, int serverIndex)
 {
     ServerIndex     = serverIndex;
     Description     = webProgram.Description;
     StartTime       = webProgram.StartTime;
     EndTime         = webProgram.EndTime;
     Genre           = webProgram.Genre;
     Title           = webProgram.Title;
     ChannelId       = webProgram.ChannelId;
     ProgramId       = webProgram.Id;
     RecordingStatus = GetRecordingStatus(webProgram);
 }
Пример #7
0
        public TVGuideProgramViewModel(WebProgramDetailed program, DateTime guideStart, DateTime guideEnd)
        {
            Id          = program.Id;
            Title       = String.IsNullOrEmpty(program.Title) ? UIStrings.Unknown : program.Title; // creating links with empty text doesn't work
            StartTime   = program.StartTime;
            EndTime     = program.EndTime;
            IsScheduled = program.IsScheduled;

            this.guideStart = guideStart;
            this.guideEnd   = guideEnd;
            this.program    = program;
        }
Пример #8
0
        public ProgramDetailsViewModel(WebProgramDetailed program)
        {
            Id          = program.Id;
            Title       = String.IsNullOrEmpty(program.Title) ? UIStrings.Unknown : program.Title; // creating links with empty text doesn't work
            Description = program.Description;
            StartTime   = program.StartTime;
            EndTime     = program.EndTime;
            IsScheduled = program.IsScheduled;

            var channel = Connections.Current.TAS.GetChannelDetailedById(program.ChannelId);

            ChannelName = channel.Title;
            ChannelId   = channel.Id;
        }
        internal static WebProgramDetailed ProgramDetailed(IProgram program)
        {
            if (program == null)
            {
                return(new WebProgramDetailed());
            }

            IProgramRecordingStatus recordingStatus = program as IProgramRecordingStatus;
            IProgramSeries          programSeries   = program as IProgramSeries;
            WebProgramBasic         webProgramBasic = BaseProgramBasic.ProgramBasic(program);

            WebProgramDetailed webProgramDetailed = new WebProgramDetailed
            {
                // From Basic
                Description       = webProgramBasic.Description,
                ChannelId         = webProgramBasic.ChannelId,
                StartTime         = webProgramBasic.StartTime,
                EndTime           = webProgramBasic.EndTime,
                Title             = webProgramBasic.Title,
                Id                = webProgramBasic.Id,
                DurationInMinutes = webProgramBasic.DurationInMinutes,
                Classification    = program.Classification,
                OriginalAirDate   = program.OriginalAirDate ?? DateTime.Now,
                ParentalRating    = program.ParentalRating,
                StarRating        = program.StarRating,
                IsScheduled       = webProgramBasic.IsScheduled,

                Genre = program.Genre,

                IsRecording = recordingStatus != null && recordingStatus.RecordingStatus != RecordingStatus.None,
                IsRecordingSeriesPending = recordingStatus != null && recordingStatus.RecordingStatus == RecordingStatus.SeriesScheduled,
                IsRecordingOncePending   = recordingStatus != null && recordingStatus.RecordingStatus == RecordingStatus.Scheduled,
                IsRecordingSeries        = recordingStatus != null && recordingStatus.RecordingStatus == RecordingStatus.RecordingSeries,
                IsRecordingManual        = recordingStatus != null && recordingStatus.RecordingStatus == RecordingStatus.RecordingManual,
                IsRecordingOnce          = recordingStatus != null && recordingStatus.RecordingStatus == RecordingStatus.RecordingOnce,
                HasConflict   = recordingStatus != null && recordingStatus.HasConflict,
                SeriesNum     = programSeries.SeasonNumber,
                EpisodeNum    = programSeries.EpisodeNumber,
                EpisodeName   = programSeries.EpisodeTitle,
                EpisodeNumber = programSeries.EpisodeNumberDetailed,
                EpisodePart   = programSeries.EpisodePart,
            };

            //webProgramDetailed.IsPartialRecordingSeriesPending;

            return(webProgramDetailed);
        }
Пример #10
0
        public static RecordingStatus GetRecordingStatus(WebProgramDetailed programDetailed)
        {
            RecordingStatus recordingStatus = RecordingStatus.None;

            if (programDetailed.IsRecording || programDetailed.IsRecordingOnce || programDetailed.IsRecordingSeries)
            {
                recordingStatus |= RecordingStatus.Recording;
            }
            if (programDetailed.IsScheduled || programDetailed.IsRecordingOncePending)
            {
                recordingStatus |= RecordingStatus.Scheduled;
            }
            if (programDetailed.IsRecordingSeriesPending)
            {
                recordingStatus |= RecordingStatus.SeriesScheduled;
            }
            return(recordingStatus);
        }
        public static async Task <WebProgramDetailed> ProcessAsync(IOwinContext context, string programId)
        {
            if (!ServiceRegistration.IsRegistered <ITvProvider>())
            {
                throw new BadRequestException("GetProgramDetailedById: ITvProvider not found");
            }

            IProgram program = await TVAccess.GetProgramAsync(context, int.Parse(programId));

            if (program == null)
            {
                throw new NotFoundException(string.Format("GetProgramDetailedById: Couldn't get Now/Next Info for channel with Id: {0}", programId));
            }

            WebProgramDetailed webProgramDetailed = ProgramDetailed(program);

            return(webProgramDetailed);
        }
Пример #12
0
        public static async Task <WebProgramDetailed> ProcessAsync(IOwinContext context, string channelId)
        {
            if (!ServiceRegistration.IsRegistered <ITvProvider>())
            {
                throw new BadRequestException("GetCurrentProgramOnChannel: ITvProvider not found");
            }

            var programs = await TVAccess.GetChannelNowNextProgramAsync(context, int.Parse(channelId));

            if (programs == null)
            {
                throw new BadRequestException(string.Format("GetCurrentProgramOnChannel: Couldn't get Now/Next Info for channel with Id: {0}", channelId));
            }

            WebProgramDetailed webProgramDetailed = ProgramDetailed(programs[0]);

            return(webProgramDetailed);
        }
Пример #13
0
        public async Task <AsyncResult <RecordingStatus> > GetRecordingStatusAsync(IProgram program)
        {
            var recordingStatus = RecordingStatus.None;

            Program indexProgram = program as Program;

            if (indexProgram == null || !CheckConnection(indexProgram.ServerIndex))
            {
                return(new AsyncResult <RecordingStatus>(false, recordingStatus));
            }

            try
            {
                WebProgramDetailed programDetailed = TvServer(indexProgram.ServerIndex).GetProgramDetailedById(program.ProgramId);
                recordingStatus = Program.GetRecordingStatus(programDetailed);
                return(new AsyncResult <RecordingStatus>(true, recordingStatus));
            }
            catch
            {
                return(new AsyncResult <RecordingStatus>(false, recordingStatus));
            }
        }
Пример #14
0
 public TVGuideProgramViewModel(WebProgramDetailed program, DateTime guideStart, DateTime guideEnd)
 {
     Program         = program;
     this.guideStart = guideStart;
     this.guideEnd   = guideEnd;
 }
 public static RecordingStatus GetRecordingStatus(WebProgramDetailed programDetailed)
 {
     RecordingStatus recordingStatus = RecordingStatus.None;
       if (programDetailed.IsRecording || programDetailed.IsRecordingOnce || programDetailed.IsRecordingSeries)
     recordingStatus |= RecordingStatus.Recording;
       if (programDetailed.IsScheduled || programDetailed.IsRecordingOncePending)
     recordingStatus |= RecordingStatus.Scheduled;
       if (programDetailed.IsRecordingSeriesPending)
     recordingStatus |= RecordingStatus.SeriesScheduled;
       return recordingStatus;
 }