public static IProgram ToProgram(this TvDatabase.Program tvProgram, bool includeRecordingStatus = false)
        {
            if (tvProgram == null)
            {
                return(null);
            }
            Program program = new Program
            {
                ChannelId     = tvProgram.IdChannel,
                ProgramId     = tvProgram.IdProgram,
                Title         = tvProgram.Title,
                Description   = tvProgram.Description,
                Genre         = tvProgram.Genre,
                StartTime     = tvProgram.StartTime,
                EndTime       = tvProgram.EndTime,
                SeasonNumber  = tvProgram.SeriesNum,
                EpisodeNumber = tvProgram.EpisodeNum,
                EpisodeTitle  = tvProgram.EpisodeName
            };

            program.RecordingStatus = tvProgram.IsRecording ? RecordingStatus.Recording : RecordingStatus.None;
            if (tvProgram.IsRecordingOncePending || tvProgram.IsRecordingOnce)
            {
                program.RecordingStatus |= RecordingStatus.Scheduled;
            }
            if (tvProgram.IsRecordingSeriesPending || tvProgram.IsRecordingSeries)
            {
                program.RecordingStatus |= RecordingStatus.SeriesScheduled;
            }

            return(program);
        }
        public static IProgram ToProgram(this TvDatabase.Program tvProgram, bool includeRecordingStatus = false)
        {
            if (tvProgram == null)
            {
                return(null);
            }
            Program program = new Program
            {
                ChannelId             = tvProgram.IdChannel,
                ProgramId             = tvProgram.IdProgram,
                Title                 = tvProgram.Title,
                Description           = tvProgram.Description,
                Genre                 = tvProgram.Genre,
                StartTime             = tvProgram.StartTime,
                EndTime               = tvProgram.EndTime,
                OriginalAirDate       = tvProgram.OriginalAirDate,
                Classification        = tvProgram.Classification,
                ParentalRating        = tvProgram.ParentalRating,
                StarRating            = tvProgram.StarRating,
                SeasonNumber          = tvProgram.SeriesNum,
                EpisodeNumber         = tvProgram.EpisodeNum,
                EpisodeNumberDetailed = tvProgram.EpisodeNumber,
                EpisodePart           = tvProgram.EpisodePart,
                EpisodeTitle          = tvProgram.EpisodeName,
            };

            program.RecordingStatus = tvProgram.IsRecording ? RecordingStatus.Recording : RecordingStatus.None;
            if (tvProgram.IsRecordingOncePending || tvProgram.IsRecordingOnce)
            {
                program.RecordingStatus |= RecordingStatus.Scheduled;
            }
            if (tvProgram.IsRecordingSeriesPending || tvProgram.IsRecordingSeries)
            {
                program.RecordingStatus |= RecordingStatus.SeriesScheduled;
            }
            if (tvProgram.IsRecordingOnce)
            {
                program.RecordingStatus |= RecordingStatus.RecordingOnce;
            }
            if (tvProgram.IsRecordingSeries)
            {
                program.RecordingStatus |= RecordingStatus.RecordingSeries;
            }
            if (tvProgram.IsRecordingManual)
            {
                program.RecordingStatus |= RecordingStatus.RecordingManual;
            }
            program.HasConflict = tvProgram.HasConflict;

            return(program);
        }