示例#1
0
        public Schedule AddSchedule(int channelId,string title, DateTime start, DateTime end, Int32 ScheduleType)
        {
            Log.Debug("TvBusinessLayer:  GetSetting(int channelId=" + channelId.ToString() + "string title="+title+",DateTime start=" + start.ToString() + ", DateTime end=" + end.ToString() + ",int ScheduleType=" + ScheduleType.ToString());

            Schedule schedule = new Schedule();
            schedule.IdChannel = channelId;
            schedule.ProgramName = title;
            schedule.StartTime = start;
            schedule.EndTime = end;
            schedule.ScheduleType = ScheduleType;

            //retrieve schedule ID from listall!!
            foreach (Schedule myschedule in Schedule.ListAll())
            {
                if ((myschedule.IdChannel == schedule.IdChannel) && (myschedule.ProgramName == schedule.ProgramName) && (myschedule.StartTime == schedule.StartTime) && (myschedule.EndTime == schedule.EndTime) && (myschedule.ScheduleType == schedule.ScheduleType))
                {
                    schedule.Id = myschedule.Id;

                    schedule.PreRecordInterval = myschedule.PreRecordInterval;
                    schedule.PostRecordInterval = myschedule.PostRecordInterval;
                    schedule.MaxAirings = myschedule.MaxAirings;
                    schedule.KeepDate = myschedule.KeepDate;
                    schedule.KeepMethod = myschedule.KeepMethod;
                    schedule.Priority = myschedule.Priority;
                    schedule.RecommendedCard = myschedule.RecommendedCard;
                    schedule.Series = myschedule.Series;
                    break;
                }
            }
            schedule.Persist();

            return schedule;
        }
示例#2
0
        public static IList<Schedule> GeneralSqlQuery(string command)
        {
            using (IScheduleRepository scheduleRepository = new ScheduleRepository(true))
            {
                IEnumerable<Mediaportal.TV.Server.TVDatabase.Entities.Schedule> allqueryschedules = scheduleRepository.ObjectContext.ExecuteStoreQuery<Mediaportal.TV.Server.TVDatabase.Entities.Schedule>(command);
                scheduleRepository.UnitOfWork.SaveChanges();
                IList<Schedule> myschedules = new List<Schedule>();
                foreach (Mediaportal.TV.Server.TVDatabase.Entities.Schedule rawschedule in allqueryschedules)
                {
                    //public Schedule(int idSchedule, int idChannel, int scheduleType, string programName, DateTime startTime, DateTime endTime, int maxAirings, int priority, string directory, int quality, int keepMethod, DateTime keepDate, int preRecordInterval, int postRecordInterval, DateTime canceled)
                    DateTime keepDate;
                    if (rawschedule.KeepDate != null)
                    {
                        keepDate = (DateTime)rawschedule.KeepDate;
                    }
                    else
                    {
                        keepDate = DateTime.ParseExact("2999-01-30_00:00", "yyyy-MM-dd_HH:mm", System.Globalization.CultureInfo.InvariantCulture);
                    }


                    Schedule myschedule = new Schedule(rawschedule.IdSchedule, rawschedule.IdChannel, rawschedule.ScheduleType, rawschedule.ProgramName, 
                                                       rawschedule.StartTime, rawschedule.EndTime, rawschedule.MaxAirings, rawschedule.Priority, rawschedule.Directory, rawschedule.Quality,
                                                       rawschedule.KeepMethod, keepDate, rawschedule.PreRecordInterval, rawschedule.PostRecordInterval, rawschedule.Canceled);

                    myschedules.Add(myschedule);
                }
                return myschedules;
            }
        }
示例#3
0
        public static IList<Schedule> GetConflictingSchedules(Schedule oneschedule)
        {
            Log.Debug("reference schedule = " + oneschedule.ProgramName + " start=" + oneschedule.StartTime.ToString() + " end=" + oneschedule.EndTime.ToString() + " channel=" + oneschedule.IdChannel);
            Log.Debug("total schedules = "+Schedule.ListAll().Count.ToString());

            Mediaportal.TV.Server.TVDatabase.Entities.Schedule myrawschedule = Mediaportal.TV.Server.TVDatabase.TVBusinessLayer.ScheduleManagement.GetSchedule(oneschedule.IdSchedule);
            List<Mediaportal.TV.Server.TVDatabase.Entities.Schedule> notViewableSchedules = new List<Mediaportal.TV.Server.TVDatabase.Entities.Schedule>();
            IList<Mediaportal.TV.Server.TVDatabase.Entities.Schedule> conflicts = Mediaportal.TV.Server.TVDatabase.TVBusinessLayer.ScheduleManagementhuha.GetConflictingSchedules(myrawschedule, out notViewableSchedules);

            IList<Schedule> myschedules = new List<Schedule>();
            foreach (Mediaportal.TV.Server.TVDatabase.Entities.Schedule rawschedule in conflicts)
            {
                //public Schedule(int idSchedule, int idChannel, int scheduleType, string programName, DateTime startTime, DateTime endTime, int maxAirings, int priority, string directory, int quality, int keepMethod, DateTime keepDate, int preRecordInterval, int postRecordInterval, DateTime canceled)
                DateTime keepDate;
                if (rawschedule.KeepDate != null)
                {
                    keepDate = (DateTime)rawschedule.KeepDate;
                }
                else
                {
                    keepDate = DateTime.ParseExact("2999-01-30_00:00", "yyyy-MM-dd_HH:mm", System.Globalization.CultureInfo.InvariantCulture);
                }

                


                Schedule myschedule = new Schedule(rawschedule.IdSchedule, rawschedule.IdChannel, rawschedule.ScheduleType, rawschedule.ProgramName,
                                                   rawschedule.StartTime, rawschedule.EndTime, rawschedule.MaxAirings, rawschedule.Priority, rawschedule.Directory, rawschedule.Quality,
                                                   rawschedule.KeepMethod, keepDate, rawschedule.PreRecordInterval, rawschedule.PostRecordInterval, rawschedule.Canceled);

                myschedules.Add(myschedule);
            }
            return myschedules;
        }
示例#4
0
        //ILogger Log = ServiceRegistration.Get<ILogger>();

        #region public methods
        public static IList<Schedule> ListAll()
        {
            DateTime start = DateTime.Now; //DEBUG PERFORMANCE
            IList<Mediaportal.TV.Server.TVDatabase.Entities.Schedule> rawschedules = ServiceAgents.Instance.ScheduleServiceAgent.ListAllSchedules();
            DateTime end = DateTime.Now; //DEBUG PERFORMANCE
            Log.Debug("IList<Schedule> ListAll() time=" + end.Subtract(start).TotalSeconds.ToString()); //DEBUG PERFORMANCE

            IList<Schedule> allschedules = new List<Schedule>();
            foreach (Mediaportal.TV.Server.TVDatabase.Entities.Schedule myschedule in rawschedules)
            {
                Schedule newschedule = new Schedule(myschedule.IdChannel, myschedule.ProgramName, myschedule.StartTime, myschedule.EndTime);
                //newschedule.Canceled = myschedule.Canceled; bug
                newschedule.Directory = myschedule.Directory;
                //newschedule.IdParentSchedule = (int)myschedule.IdParentSchedule ; bug
                newschedule.IdSchedule = myschedule.IdSchedule ;
                if (myschedule.KeepDate != null)
                {
                    newschedule.KeepDate = (DateTime)myschedule.KeepDate;
                }
                else
                {
                    newschedule.KeepDate = DateTime.ParseExact("2999-01-30_00:00", "yyyy-MM-dd_HH:mm", System.Globalization.CultureInfo.InvariantCulture);
                }
                newschedule.KeepMethod = myschedule.KeepMethod ;
                newschedule.MaxAirings = myschedule.MaxAirings ;
                newschedule.PostRecordInterval = myschedule.PostRecordInterval ;
                newschedule.PreRecordInterval = myschedule.PreRecordInterval ;
                newschedule.Priority = myschedule.Priority ;
                newschedule.Quality = myschedule.Quality;
                newschedule.ScheduleType = myschedule.ScheduleType;
                newschedule.Series = myschedule.Series;
                //add whatever you need here
                newschedule.RecommendedCard = 0;  //no more supported set everything to default 0
                
                //Log.Debug("schedule = " + newschedule.ProgramName);
                allschedules.Add(newschedule);
            }
            DateTime end2 = DateTime.Now; //DEBUG PERFORMANCE
            Log.Debug("IList<Schedule> ListAll() total time=" + end2.Subtract(start).TotalSeconds.ToString()); //DEBUG PERFORMANCE
            return allschedules;   
        }
示例#5
0
 //Schedule schedule = layer.AddSchedule(minprogram.IdChannel, minprogram.Title, minprogram.StartTime, minprogram.EndTime, 0);
 public Schedule AddSchedule(int IdChannel, string Title, DateTime StartTime, DateTime EndTime, int ScheduleType)
 {
     Schedule newschedule = new Schedule(IdChannel, Title, StartTime, EndTime);
     newschedule.ScheduleType = ScheduleType;
     return newschedule;
 }