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; }
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; } }
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; }
//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; }
//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; }