public ScheduleStageInfo GetScheduleStageInfo(Guid id) { Logger.Debug($"{id}"); if (id == null || id == System.Guid.Empty) { throw new System.ArgumentNullException("id"); } SchedulingTable schedule = this.UnitOfWork.SchedulingTableRepository.GetById(id); ScheduleStageInfo scheduleStageInfo = Mapper.Map <Models.SchedulingTable, Models.ScheduleStageInfo>(schedule); return(scheduleStageInfo); }
public ScheduleStageInfo GetSemesterScheduleStageInfo(Guid semsterId) { Logger.Debug($"{semsterId}"); if (semsterId == null || semsterId == System.Guid.Empty) { throw new System.ArgumentNullException("semsterId"); } SchedulingTable schedule = this.UnitOfWork.SchedulingTableRepository.GetSemesterDefaultSchedule(semsterId); ScheduleStageInfo scheduleStageInfo = Mapper.Map <Models.SchedulingTable, Models.ScheduleStageInfo>(schedule); return(scheduleStageInfo); }
public Schedule.Models.ScheduleStageInfo ValidateScheduleBoard(Guid scheduleId) { Logger.Debug($"Start validating schedule board: {scheduleId}"); if (scheduleId == null || scheduleId == Guid.Empty) { Logger.Error($"ScheduleId is empty."); throw new ArgumentNullException("scheduleId"); } this.UnitOfWork.SchedulingTableRepository.ChangedValidated(scheduleId); this.UnitOfWork.SaveChanges(); Logger.Debug($"Complete validating schedule board: {scheduleId}"); SchedulingTable schedule = this.UnitOfWork.SchedulingTableRepository.GetById(scheduleId); ScheduleStageInfo scheduleStageInfo = Mapper.Map <Schedule.Models.SchedulingTable, Schedule.Models.ScheduleStageInfo>(schedule); return(scheduleStageInfo); }
public ScheduleStageInfo CalculateSemesterScheduleBoard(Guid semesterId) { Schedule.Models.SchedulingTable scheduleTable = this.UnitOfWork.SchedulingTableRepository.GetSemesterDefaultSchedule(semesterId); Guid scheduleId = Guid.Empty; if (scheduleTable == null) { scheduleTable = this.UnitOfWork.SchedulingTableRepository.CreateSchedule(semesterId); this.UnitOfWork.SaveChanges(); } scheduleId = scheduleTable.Id; this.UnitOfWork.SchedulingTableRepository.ChangedValidated(scheduleId); Logger.Debug($"Changed status of schedule to VALIDATED: {scheduleId}"); this.UnitOfWork.SaveChanges(); this.UnitOfWork.SchedulingTableRepository.ChangeGeneratingStarted(scheduleId); Logger.Debug($"Changed status of schedule to GENERATING: {scheduleId}"); this.UnitOfWork.SaveChanges(); this.ClearScheduleBoard(scheduleId); Logger.Debug($"Cleared/Reset schedule-board: {scheduleId}"); ScheduleBoard board = this.GenerateScheduleBoard(scheduleId); this.SaveScheduleBoard(board); this.UnitOfWork.SchedulingTableRepository.ChangeGeneratingCompleted(scheduleId); Logger.Debug($"Changed status of schedule to GENERATED: {scheduleId}"); this.UnitOfWork.SaveChanges(); SchedulingTable schedule = this.UnitOfWork.SchedulingTableRepository.GetById(scheduleId); ScheduleStageInfo scheduleStageInfo = Mapper.Map <Schedule.Models.SchedulingTable, Schedule.Models.ScheduleStageInfo>(schedule); return(scheduleStageInfo); }