public static Schedule SaveSchedule(Schedule schedule)
 {
   using (IScheduleRepository scheduleRepository = new ScheduleRepository())
   {
     scheduleRepository.AttachEntityIfChangeTrackingDisabled(scheduleRepository.ObjectContext.Schedules, schedule);
     scheduleRepository.ApplyChanges(scheduleRepository.ObjectContext.Schedules, schedule);
     scheduleRepository.UnitOfWork.SaveChanges();        
     schedule.AcceptChanges();
   }
   ProgramManagement.SynchProgramStates(new ScheduleBLL(schedule));
   return schedule;
 }
 public static RuleBasedSchedule SaveRuleBasedSchedule(RuleBasedSchedule schedule)
 {
   using (IScheduleRepository scheduleRepository = new ScheduleRepository())
   {
     scheduleRepository.AttachEntityIfChangeTrackingDisabled(scheduleRepository.ObjectContext.RuleBasedSchedules, schedule);
     scheduleRepository.ApplyChanges(scheduleRepository.ObjectContext.RuleBasedSchedules, schedule);
     scheduleRepository.UnitOfWork.SaveChanges();
     schedule.AcceptChanges();
     return schedule;
   }
 }