public LessonViewAtLessonListByTfd(Lesson l) { LessonId = l.LessonId; CalendarDate = l.Calendar.Date.ToString("dd.MM.yyyy"); RingTime = l.Ring.Time.ToString("H:mm"); AuditoriumName = l.Auditorium.Name; }
private string LessonToString(Lesson lesson, bool groupsNotEqual) { return (groupsNotEqual ? lesson.TeacherForDiscipline.Discipline.StudentGroup.Name + Environment.NewLine : "") + lesson.TeacherForDiscipline.Discipline.Name + Environment.NewLine + lesson.TeacherForDiscipline.Teacher.FIO + Environment.NewLine + lesson.Auditorium.Name; }
public MySQLLesson(Lesson lesson) { LessonId = lesson.LessonId; IsActive = lesson.IsActive ? 1 : 0; TeacherForDisciplineId = lesson.TeacherForDiscipline.TeacherForDisciplineId; CalendarId = lesson.Calendar.CalendarId; RingId = lesson.Ring.RingId; AuditoriumId = lesson.Auditorium.AuditoriumId; }
public LessonViewAtLessonListByTeacher(Lesson l) { LessonId = l.LessonId; DisciplineName = l.TeacherForDiscipline.Discipline.Name; GroupName = l.TeacherForDiscipline.Discipline.StudentGroup.Name; CalendarDate = l.Calendar.Date.ToString("dd.MM.yyyy"); RingTime = l.Ring.Time.ToString("H:mm"); AuditoriumName = l.Auditorium.Name; }
public DailyScheduleGroupLessonView(Lesson l, int groupId) { LessonId = l.LessonId; Ring = l.Ring.Time.ToString("H:mm"); if (l.TeacherForDiscipline.Discipline.StudentGroup.StudentGroupId != groupId) { LessonSummary = l.TeacherForDiscipline.Discipline.StudentGroup.Name + "\n"; } LessonSummary += l.TeacherForDiscipline.Discipline.Name + "\n"; LessonSummary += l.TeacherForDiscipline.Teacher.FIO + "\n"; LessonSummary += l.Auditorium.Name; }
private void Execute_Click(object sender, EventArgs e) { if (teacherForDisciplineBox.SelectedValue == null) { MessageBox.Show("Неправильно выбран TFD."); return; } var weekList = CommonFunctions.WeeksStringToList(lessonWeeks.Text); var tfd = _repo.TeacherForDisciplines.GetTeacherForDiscipline((int)teacherForDisciplineBox.SelectedValue); var disc = tfd.Discipline; var studentGroup = disc.StudentGroup; var sigFromGroup = _repo.StudentsInGroups.GetFiltredStudentsInGroups(sig => sig.StudentGroup.StudentGroupId == studentGroup.StudentGroupId && !sig.Student.Expelled); var studentIdsInGroup = sigFromGroup.Select(studentsInGroupse => studentsInGroupse.Student.StudentId).ToList(); var studentGroupsIds = _repo.StudentsInGroups.GetFiltredStudentsInGroups(sig => studentIdsInGroup.Contains(sig.Student.StudentId)).Select(sing => sing.StudentGroup.StudentGroupId).Distinct(); var rings = ( from object ringView in ringsListBox.SelectedItems select _repo.Rings.GetRing(((RingView) ringView).RingId)) .ToList(); var ringIds = rings.Select(r => r.RingId).ToList(); var calendarsList = ( from week in weekList select _repo.CommonFunctions.GetDateFromDowAndWeek((int)DayOfWeekListBox.SelectedValue, week) into date select _repo.Calendars.FindCalendar(date) into calendar where calendar != null select calendar) .ToList(); var calendarIdsList = calendarsList.Select(c => c.CalendarId).ToList(); // Есть уроки в это время var groupsLessons = _repo .Lessons .GetFiltredLessons( l => studentGroupsIds.Contains(l.TeacherForDiscipline.Discipline.StudentGroup.StudentGroupId) && calendarIdsList.Contains(l.Calendar.CalendarId) && ringIds.Contains(l.Ring.RingId) && (l.State == 1)); if (groupsLessons.Count != 0) { var outOfMind = MessageBox.Show("У студентов группы есть занятия. Всё равно добавить?", "ЕГГОГ", MessageBoxButtons.YesNo); if (outOfMind == DialogResult.No) { return; } } // Есть уроки в это время // Есть практика/каникулы и т.п. в это время var periods = _repo.CustomStudentGroupAttributes.GetFiltredCustomStudentGroupAttributes( csga => studentGroupsIds.Contains(csga.StudentGroup.StudentGroupId) && csga.Value.EndsWith("+")); var lessonsPeriods = new List<CustomStudentGroupAttribute>(); foreach (var period in periods) { var startDate = DateTime.ParseExact(period.Value.Split('@')[1], "dd.MM.yyyy", CultureInfo.InvariantCulture); var endDate = DateTime.ParseExact(period.Value.Split('@')[2], "dd.MM.yyyy", CultureInfo.InvariantCulture); foreach (var calendar in calendarsList) { if ((calendar.Date.Date >= startDate.Date) && (calendar.Date.Date <= endDate.Date)) { lessonsPeriods.Add(period); } } } if (lessonsPeriods.Count != 0) { var outOfMind = MessageBox.Show("У студентов группы есть периоды без занятий в это время. Всё равно добавить?", "ЕГГОГ", MessageBoxButtons.YesNo); if (outOfMind == DialogResult.No) { return; } } // Есть практика/каникулы и т.п. в это время var audWeekList = Utilities.GetAudWeeksList(auditoriums.Text); foreach (int week in weekList) { foreach (var ring in rings) { var lesson = new Lesson { State = ProposedLesson.Checked ? 2 : (isActive.Checked ? 1 : 0), TeacherForDiscipline = tfd, Ring = ring }; var date = _repo.CommonFunctions.GetDateFromDowAndWeek((int)DayOfWeekListBox.SelectedValue, week); var calendar = _repo.Calendars.FindCalendar(date) ?? new Calendar(date); lesson.Calendar = calendar; // Auditorium Auditorium aud; if (audList.SelectedIndex != -1) { aud = _repo.Auditoriums.Get((int)audList.SelectedValue); } else { if (audWeekList.Keys.Count == 1) { var lessonAud = audWeekList[0]; audWeekList.Clear(); foreach (var localWeek in weekList) { audWeekList.Add(localWeek, lessonAud); } } aud = _repo.Auditoriums.Find(audWeekList[week]); if (aud == null) { var firstBuilding = _repo.Buildings.GetFirstFiltredBuilding(b => true); if (firstBuilding != null) { _repo.Auditoriums.Add(new Auditorium(audWeekList[week], firstBuilding)); aud = _repo.Auditoriums.Find(audWeekList[week]); } } } lesson.Auditorium = aud; // State if (ProposedLesson.Checked) { lesson.State = 2; } _repo.Lessons.AddLesson(lesson, publicComment.Text, hiddenComment.Text); } } Close(); }
private void Execute_Click(object sender, EventArgs e) { if (teacherForDisciplineBox.SelectedValue == null) { MessageBox.Show("Неправильно выбран TFD."); return; } var weekList = ScheduleRepository.WeeksStringToList(lessonWeeks.Text); var tfd = _repo.GetTeacherForDiscipline((int)teacherForDisciplineBox.SelectedValue); var disc = tfd.Discipline; var studentGroup = disc.StudentGroup; var sigFromGroup = _repo.GetFiltredStudentsInGroups(sing => sing.StudentGroup.StudentGroupId == studentGroup.StudentGroupId); var studentIdsInGroup = sigFromGroup.Select(studentsInGroupse => studentsInGroupse.Student.StudentId).ToList(); var studentGroupsIds = _repo.GetFiltredStudentsInGroups(sig => studentIdsInGroup.Contains(sig.Student.StudentId)).Select(sing => sing.StudentGroup.StudentGroupId).Distinct(); var ring = _repo.GetRing((int)ringsBox.SelectedValue); var calendarIdsList = new List<int>(); for (int i = 0; i < weekList.Count; i++) { var date = _repo.GetDateFromDowAndWeek((int)dayOfWeekBox.SelectedValue, weekList[i]); var calendar = _repo.FindCalendar(date); if (calendar != null) { calendarIdsList.Add(calendar.CalendarId); } } var groupsLessons = _repo .GetFiltredLessons( l => studentGroupsIds.Contains(l.TeacherForDiscipline.Discipline.StudentGroup.StudentGroupId) && calendarIdsList.Contains(l.Calendar.CalendarId) && l.Ring.RingId == ring.RingId && l.IsActive); if (groupsLessons.Count != 0) { MessageBox.Show("У студентов группы есть занятия."); return; } Dictionary<int, string> audWeekList = new Dictionary<int,string>(); audWeekList = Utilities.GetAudWeeksList(auditoriums.Text); for (int i = 0; i < weekList.Count; i++) { var lesson = new Lesson(); lesson.IsActive = isActive.Checked; lesson.TeacherForDiscipline = tfd; lesson.Ring = _repo.GetRing((int)ringsBox.SelectedValue); var date = _repo.GetDateFromDowAndWeek((int)dayOfWeekBox.SelectedValue, weekList[i]); var calendar = _repo.FindCalendar(date); if (calendar == null) { calendar = new Calendar(date); } lesson.Calendar = calendar; // Auditorium Auditorium aud; if (audList.SelectedIndex != -1) { aud = _repo.GetAuditorium((int)audList.SelectedValue); } else { if (audWeekList.Keys.Count == 1) { var lessonAud = audWeekList[0]; audWeekList.Clear(); foreach (var week in weekList) { audWeekList.Add(week, lessonAud); } } aud = _repo.FindAuditorium(audWeekList[weekList[i]]); if (aud == null) { _repo.AddAuditorium(new Auditorium(audWeekList[weekList[i]])); aud = _repo.FindAuditorium(audWeekList[weekList[i]]); } } lesson.Auditorium = aud; _repo.AddLesson(lesson, publicComment.Text, hiddenComment.Text); } this.Close(); }
private void CopyINOGroupLessonsFromRealSchedule() { _repo.ConnectionString = "data source=tcp:127.0.0.1,1433; Database=ScheduleDB;User ID = "+ ";User ID = " + Schedule.Properties.Settings.Default.DBUserName + ";Password = "******"-") && tfd.Discipline.AuditoriumHours != 0) .Select(tfd => tfd.Discipline.Name) .OrderBy(a => a) .ToList(); var result = new Dictionary<string, List<Lesson>>(); foreach (var tfd in _repo.GetAllTeacherForDiscipline()) { if (tfd.Discipline.StudentGroup.Name.Contains("-") && tfd.Discipline.AuditoriumHours != 0) { var tfdLessons = _repo.GetFiltredLessons(l => l.IsActive && l.TeacherForDiscipline.TeacherForDisciplineId == tfd.TeacherForDisciplineId); if (!result.ContainsKey(tfd.Discipline.StudentGroup.Name)) { result.Add(tfd.Discipline.StudentGroup.Name, tfdLessons); } } } _repo.ConnectionString = "data source=tcp:127.0.0.1,1433; Database=S-13-14-2;User ID = " + ";User ID = " + Schedule.Properties.Settings.Default.DBUserName + ";Password = " + Schedule.Properties.Settings.Default.DBPassword; var newLessonsList = new List<Lesson>(); foreach (var kvp in result) { var tefd = _repo.GetFirstFiltredTeacherForDiscipline(tfd => tfd.Discipline.StudentGroup.Name == kvp.Key); if (tefd != null) { foreach (var lesson in kvp.Value) { var calendar = _repo.GetFirstFiltredCalendar(c => c.Date.Date == lesson.Calendar.Date.Date); var ring = _repo.GetFirstFiltredRing(r => r.Time.TimeOfDay == lesson.Ring.Time.TimeOfDay); var auditorium = _repo.GetFirstFiltredAuditoriums(a => a.Name == lesson.Auditorium.Name); if ((calendar == null) || (ring == null) || (auditorium == null)) { throw new Exception(); } var newLesson = new Lesson() { Auditorium = auditorium, Ring = ring, Calendar = calendar, IsActive = true, TeacherForDiscipline = tefd }; newLessonsList.Add(newLesson); } } } foreach (var l in newLessonsList) { _repo.AddLesson(l); } }
private void SaveChangesClick(object sender, EventArgs e) { var oldWeeks = _curLessons[_curLessons.Keys.ElementAt(_curTfdIndex)].Item2.Select(l => _repo.CommonFunctions.CalculateWeekNumber(l.Calendar.Date)).ToList(); var newWeeks = CommonFunctions.WeeksStringToList(lessonWeeks.Text); var oldAuds = _curLessons[_curLessons.Keys.ElementAt(_curTfdIndex)].Item2.ToDictionary( l => _repo.CommonFunctions.CalculateWeekNumber(l.Calendar.Date), l => l.Auditorium.Name); var newAuds = Utilities.GetAudWeeksList(auditoriums.Text); var singleNewAud = newAuds.FirstOrDefault(a => a.Key == 0); if (singleNewAud.Value != null) { newAuds.Clear(); foreach (var week in newWeeks) { newAuds.Add(week, singleNewAud.Value); } } var keys = oldAuds.Keys.ToList(); foreach (var audKey in keys) { if (newAuds.ContainsKey(audKey) && (oldAuds[audKey] == newAuds[audKey])) { oldAuds[audKey] = "-1"; oldWeeks.Remove(audKey); newWeeks.Remove(audKey); newAuds.Remove(audKey); } if (newAuds.ContainsKey(audKey) && (oldAuds[audKey] != newAuds[audKey])) { var oldLesson = _curLessons[_curLessons.Keys.ElementAt(_curTfdIndex)].Item2 .FirstOrDefault(l => audKey == _repo.CommonFunctions.CalculateWeekNumber(l.Calendar.Date)); var weekNumber = -1; if (oldLesson != null) { weekNumber = _repo.CommonFunctions.CalculateWeekNumber(_repo.Lessons.GetLesson(oldLesson.LessonId).Calendar.Date); _repo.Lessons.RemoveLessonActiveStateWoLog(oldLesson.LessonId); } var newLesson = new Lesson { TeacherForDiscipline = _repo.TeacherForDisciplines.GetTeacherForDiscipline(int.Parse(_curLessons.Keys.ElementAt(_curTfdIndex).Split('+')[0])), Ring = _ring, Auditorium = _repo.Auditoriums.Find(newAuds[weekNumber]), State = 1 }; // lesson.Calendar var date = _repo.CommonFunctions.GetDateFromDowAndWeek(_dow, weekNumber); var calendar = _repo.Calendars.FindCalendar(date) ?? new Calendar(date); newLesson.Calendar = calendar; _repo.Lessons.AddLessonWoLog(newLesson); _repo.LessonLogEvents.AddLessonLogEvent(new LessonLogEvent { DateTime = DateTime.Now, OldLesson = oldLesson, NewLesson = newLesson, PublicComment = "", HiddenComment = "" }); oldAuds[audKey] = "-1"; oldWeeks.Remove(audKey); newWeeks.Remove(audKey); newAuds.Remove(audKey); } } var idsToRemove = oldAuds.Where(a => a.Value == "-1").Select(a => a.Key).ToList(); foreach (var audId in idsToRemove) { oldAuds.Remove(audId); } var oldLessonsIdToDelete = _curLessons[_curLessons.Keys.ElementAt(_curTfdIndex)].Item2 .Where(l => oldWeeks.Contains(_repo.CommonFunctions.CalculateWeekNumber(l.Calendar.Date))) .Select(l => l.LessonId); foreach (var lessonId in oldLessonsIdToDelete) { _repo.Lessons.RemoveLesson(lessonId); } var curTfd = _repo.TeacherForDisciplines.GetTeacherForDiscipline(int.Parse(_curLessons.Keys.ElementAt(_curTfdIndex).Split('+')[0])); foreach (var week in newWeeks) { var lesson = new Lesson { TeacherForDiscipline = curTfd, Ring = _ring, Auditorium = _repo.Auditoriums.Find(newAuds[week]), State = 1 }; // lesson.Calendar var date = _repo.CommonFunctions.GetDateFromDowAndWeek(_dow, week); var calendar = _repo.Calendars.FindCalendar(date) ?? new Calendar(date); lesson.Calendar = calendar; _repo.Lessons.AddLesson(lesson); } Close(); }
public Lesson AddLessonWOLog(Lesson lesson) { using (var context = new ScheduleContext(ConnectionString)) { lesson.LessonId = 0; lesson.TeacherForDiscipline = context.TeacherForDiscipline.FirstOrDefault(tfd => tfd.TeacherForDisciplineId == lesson.TeacherForDiscipline.TeacherForDisciplineId); lesson.Calendar = context.Calendars.FirstOrDefault(c => c.CalendarId == lesson.Calendar.CalendarId); lesson.Ring = context.Rings.FirstOrDefault(r => r.RingId == lesson.Ring.RingId); lesson.Auditorium = context.Auditoriums.FirstOrDefault(a => a.AuditoriumId == lesson.Auditorium.AuditoriumId); context.Lessons.Add(lesson); context.SaveChanges(); return lesson; } }
public Lesson AddLesson(Lesson lesson, string publicComment = "", string hiddenComment = "") { using (var context = new ScheduleContext(ConnectionString)) { lesson.LessonId = 0; lesson.TeacherForDiscipline = context.TeacherForDiscipline.FirstOrDefault(tfd => tfd.TeacherForDisciplineId == lesson.TeacherForDiscipline.TeacherForDisciplineId); lesson.Calendar = context.Calendars.FirstOrDefault(c => c.CalendarId == lesson.Calendar.CalendarId); lesson.Ring = context.Rings.FirstOrDefault(r => r.RingId == lesson.Ring.RingId); lesson.Auditorium = context.Auditoriums.FirstOrDefault(a => a.AuditoriumId == lesson.Auditorium.AuditoriumId); context.Lessons.Add(lesson); context.LessonLog.Add( new LessonLogEvent { OldLesson = null, NewLesson = lesson, DateTime = DateTime.Now, PublicComment = publicComment, HiddenComment = hiddenComment } ); context.SaveChanges(); return lesson; } }
public void UpdateLesson(Lesson lesson) { using (var context = new ScheduleContext(ConnectionString)) { var curLesson = context.Lessons.FirstOrDefault(l => l.LessonId == lesson.LessonId); curLesson.Auditorium = lesson.Auditorium; curLesson.Calendar = lesson.Calendar; curLesson.IsActive = lesson.IsActive; curLesson.Ring = lesson.Ring; curLesson.TeacherForDiscipline = lesson.TeacherForDiscipline; context.SaveChanges(); } }
public ScheduleNote(Lesson lesson, string text) { Lesson = lesson; Text = text; }
private string LessonToString(Lesson lesson) { return lesson.TeacherForDiscipline.Discipline.StudentGroup.Name + Environment.NewLine + lesson.TeacherForDiscipline.Discipline.Name + Environment.NewLine + lesson.TeacherForDiscipline.Teacher.FIO; }