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,
        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)
        program.RecordingStatus |= RecordingStatus.Scheduled;
      if (tvProgram.IsRecordingSeriesPending)
        program.RecordingStatus |= RecordingStatus.SeriesScheduled;

      return program;
    }
        public static IProgram ToProgram(this Mediaportal.TV.Server.TVDatabase.Entities.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,
                // TODO: Morpheus_xx, 2017-11-25: TVE35 handles genres differently, needs to be checked and fixed.
                // Genre = tvProgram.ProgramCategory?.Category,
                StartTime     = tvProgram.StartTime,
                EndTime       = tvProgram.EndTime,
                SeasonNumber  = tvProgram.SeriesNum,
                EpisodeNumber = tvProgram.EpisodeNum,
                EpisodeTitle  = tvProgram.EpisodeName
            };

            ProgramBLL programLogic = new ProgramBLL(tvProgram);

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

            return(program);
        }
        public static IProgram ToProgram(this Mediaportal.TV.Server.TVDatabase.Entities.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,
                StartTime     = tvProgram.StartTime,
                EndTime       = tvProgram.EndTime,
                SeasonNumber  = tvProgram.SeriesNum,
                EpisodeNumber = tvProgram.EpisodeNum,
                EpisodeTitle  = tvProgram.EpisodeName
            };

            ProgramBLL programLogic = new ProgramBLL(tvProgram);

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

            return(program);
        }
        public static IProgram ToProgram(this Mediaportal.TV.Server.TVDatabase.Entities.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.ProgramCategory?.Category,
                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.EpisodeNum, // TVE3.5 doesn't have Episode.Number?
                EpisodePart           = tvProgram.EpisodePart,
                EpisodeTitle          = tvProgram.EpisodeName,
            };

            ProgramBLL programLogic = new ProgramBLL(tvProgram);

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

            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);
        }
    public static IProgram ToProgram(this Mediaportal.TV.Server.TVDatabase.Entities.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,
          StartTime = tvProgram.StartTime,
          EndTime = tvProgram.EndTime,
        };

      ProgramBLL programLogic = new ProgramBLL(tvProgram);
      program.RecordingStatus = programLogic.IsRecording ? RecordingStatus.Recording : RecordingStatus.None;
      if (programLogic.IsRecordingOncePending)
        program.RecordingStatus |= RecordingStatus.Scheduled;
      if (programLogic.IsRecordingSeriesPending)
        program.RecordingStatus |= RecordingStatus.SeriesScheduled;

      return program;
    }