public SchedulingTableModel CreateOrUpdate(SchedulingTableModel model) { Logger.Debug($"{model}"); if (model == null) { throw new System.ArgumentNullException("model"); } SchedulingTable schedule = null; if (model.Id == null || model.Id == System.Guid.Empty) { schedule = this.UnitOfWork.SchedulingTableRepository.CreateSchedule(model.SemesterId, model.Name, model.ShortName, model.HighlightColor, model.LogoUrl, model.IsActive); } else { schedule = this.UnitOfWork.SchedulingTableRepository.UpdateSchedule(model.Id, model.SemesterId, model.Name, model.ShortName, model.HighlightColor, model.LogoUrl, model.IsActive); } this.UnitOfWork.SaveChanges(); SchedulingTableModel scheduleModel = Mapper.Map <Models.SchedulingTable, Models.SchedulingTableModel>(schedule); return(scheduleModel); }
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); }