public Models.SchedulingTable CreateSchedule(Guid semesterId, string name, string shortName, string HighlightColor, string logoUrl, bool isActive) { if (semesterId == null || semesterId == System.Guid.Empty) { throw new ArgumentNullException("semesterId"); } Models.SchedulingTable schedule = new Models.SchedulingTable() { Id = Guid.NewGuid(), SemesterId = semesterId, Name = name, ShortName = shortName, HighlightColor = HighlightColor, LogoUrl = logoUrl, Stage = Models.SCHEDULE_STAGE.NEW, IsActive = isActive, IsDeleted = false, AddedStamp = DateTime.UtcNow }; Models.ScheduleEvent scheduleEvent = new Models.ScheduleEvent() { Id = Guid.NewGuid(), Stage = Models.SCHEDULE_STAGE.NEW, Timestamp = DateTime.Now, SchedulingTableId = schedule.Id }; this.DataContext.Insert <Models.SchedulingTable>(schedule); this.DataContext.Insert <Models.ScheduleEvent>(scheduleEvent); return(schedule); }
protected void ChangeScheduleStage(Guid scheduleId, Models.SCHEDULE_STAGE stage) { Models.SchedulingTable schedule = this.GetById(scheduleId); if (schedule == null) { throw new InvalidOperationException($"Schedule ({scheduleId}) does not exist."); } if (!schedule.IsActive) { throw new InvalidOperationException($"Cannot change stage of Un-Actice Schedule ({scheduleId})"); } if (schedule.IsDeleted) { throw new InvalidOperationException($"Cannot change stage of Deleted Schedule ({scheduleId})"); } Models.ScheduleEvent scheduleEvent = new Models.ScheduleEvent() { Id = Guid.NewGuid(), Stage = stage, Timestamp = DateTime.Now, SchedulingTableId = schedule.Id }; this.DataContext.Insert <Models.ScheduleEvent>(scheduleEvent); schedule.Stage = stage; this.DataContext.Update <Models.SchedulingTable, Guid>(schedule, x => x.Stage); }