public void SaveSchedule(EpiSchedule schedule) { using (var scope = _scopeFactory.Create()) { var ctx = scope.DbContexts.Get <PlanContext>(); ctx.Set <EpiSchedule>().AddOrUpdate(schedule); ctx.SaveChanges(); } }
public PlanScheduleRow(Reactor reactor, EpiSchedule schedule) { _reactorSchedule = new ReactorSchedule() { Schedule = schedule, Reactor = reactor, Tasks = new ObservableCollection <Task>() }; }
public void CreateNewSchedule() { log.Trace("CreateNewSchedule"); Context.Reactors.Load(); var reactors = Context.Reactors.Local; Context.EpiSchedules.Local.Clear(); EpiSchedule schedule = new EpiSchedule() { DateCreated = DateTime.Now, PublishedBy = "EPI_PLAN_TOOL" }; Context.EpiSchedules.Add(schedule); foreach (Reactor reactor in reactors) { schedule.ReactorSchedules.Add( new ReactorSchedule() { Schedule = schedule, Reactor = reactor } ); } SaveChanges(); ReactorGroups = new ObservableCollection <ReactorGroup>() { new ReactorGroup() { GroupName = "ASM", GroupRows = new ObservableCollection <ReactorSchedule>( from sched in schedule.ReactorSchedules where sched.Reactor.ReactType == "ASM" select sched) }, new ReactorGroup() { GroupName = "CENTURA", GroupRows = new ObservableCollection <ReactorSchedule>( from sched in schedule.ReactorSchedules where sched.Reactor.ReactType == "CENTURA" select sched) } }; }
public EpiSchedule CreateSchedule(String schedCode, List <ReactorSchedule> models) { using (var scope = _scopeFactory.Create()) { var ctx = scope.DbContexts.Get <PlanContext>(); foreach (var sched in ctx.EpiSchedules.Where(s => s.SchedCode == schedCode & s.Status == "A") ) { sched.Status = "I"; } EpiSchedule schedule = new EpiSchedule() { SchedCode = schedCode, Status = "A", DateCreated = DateTime.Now, }; foreach (var model in models) { var rs = new ReactorSchedule { Reactor = ctx.Reactors.Find(model.ReactorID) }; StatusMessageService.Message = "Adding: " + rs.Reactor.Caption; int count = model.Tasks.Count; int index = 1; foreach (var task in model.Tasks) { var pubTask = new Task(); Mapper.Map(task, pubTask); pubTask.TaskID = 0; pubTask.MasterTaskID = task.TaskID; StatusMessageService.Message = String.Format("Adding task: {0} of {1}", index, count); ctx.Tasks.Add(pubTask); rs.Tasks.Add(pubTask); index++; } ctx.ReactorSchedules.Add(rs); schedule.ReactorSchedules.Add(rs); } ctx.EpiSchedules.Add(schedule); schedule.DateCreated = DateTime.Now; schedule.DatePublished = DateTime.Now; schedule.CreatedBy = AuthenticationService.UserID; ctx.SaveChanges(); return(schedule); } }
public void Load() { if (!Loading) { Loading = true; StatusMessageService.Message = String.Format("Loading {0} schedule.", ScheduleCodeName); _schedule = Repository.LoadSchedule(this.ScheduleCode); if (_schedule == null) { _schedule = Repository.CreateSchedule(this.ScheduleCode); } ID = _schedule.ScheduleID; StatusMessageService.Message = "Getting Reactor Statuses..."; var reactorStatus = Repository.GetStatuses(); StatusMessageService.Message = "Loading Schedules..."; BookedOrders.Load(); var reactors = new List <ReactorViewModel>(16); foreach (var rs in _schedule.ReactorSchedules.OrderBy(r => r.Reactor.ReactorNumber)) { ReactorStatus status = reactorStatus.Find(r => r.ReactorID == rs.ReactorID); var reactor = _factory.Create(rs); StatusMessageService.Message = "Loading " + reactor.Caption; reactors.Add(reactor); reactor.Start = Start; reactor.End = End; reactor.Status = status; reactor.TaskSelected += ReactorTaskSelected; reactor.Load(rs.Tasks.OrderBy(t => t.TaskIndex).ToList()); reactor.RemoveProcessedTasks(); reactor.RefreshLayout(); } Reactors.Clear(); Reactors.AddRange(reactors); Loading = false; StatusMessageService.Message = "Loading Complete."; BookedOrders.Orders.View.Refresh(); } }