private void RefreshSchedule(int weekDay) { using (var db = new SportEntities(SportProgramSettings.ConnectionString)) { var schedule = db.Schedule.Where(x => x.Days.Contains(weekDay.ToString())).OrderBy(x => x.TimeStart).ToList(); CurrentSchedule = new List <LocalSchedule>(); foreach (var item in schedule) { int sessionId = CalcSessionId(item.TimeStart, item.GroupId); if (sessionId == -1) { MessageBox.Show("Приложение будет закрыто"); Environment.Exit(Environment.ExitCode); } CurrentSchedule.Add(new LocalSchedule { GroupId = item.GroupId, TimeStart = item.TimeStart, Caption = item.Groups.Name + " (" + item.Groups.Trainers.LastName + ")", Hall = item.Hall, SessionId = sessionId, Count = 0 }); } grid_Schedule.Rows.Clear(); foreach (var item in CurrentSchedule) { grid_Schedule.Rows.Add(item.GetTimeStart(), item.Caption, item.Hall, item.Count, "Открыть..."); } ActualizeShedule(); } grid_Schedule.ClearSelection(); }
private void RefreshScheduleCounters() { for (int i = 0; i < CurrentSchedule.Count; i++) { using (var db = new SportEntities(SportProgramSettings.ConnectionString)) { Sessions session = db.Sessions.Find(CurrentSchedule[i].SessionId); grid_Schedule.Rows[i].Cells[3].Value = session.StudentsInSessions.Count; } } }
public MainForm() { InitializeComponent(); if (!SportProgramSettings.Initialization()) { MessageBox.Show("Инициализация прошла НЕУСПЕШНО. Приложение будет выключено.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); IsNeedCloseApp = true; return; } using (var db = new SportEntities(SportProgramSettings.ConnectionString)) { bool IsBaseExists = db.Database.Exists(); if (!IsBaseExists) { MessageBox.Show("Проблемы с базой данных, нет подключения, либо самой базы данных. Приложение будет выключено.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); IsNeedCloseApp = true; return; } } }
private int CalcSessionId(int TimeStart, int GroupId) { // Создаём объекты времени для поиска сессии DateTime dt = GetScheduleDate(); TimeSpan ts = new TimeSpan( (int)((double)(TimeStart) / 60), (TimeStart) % 60, 0); // Ищем текущую сессию. Если она не найдена, то создаём свою int currentSessionId; using (var db = new SportEntities(SportProgramSettings.ConnectionString)) { // Ищем сессию var grId = GroupId; Sessions currentSession = db.Sessions.Where(x => x.Date == dt && x.Time == ts && x.GroupId == grId).FirstOrDefault(); // Не найдена? Значит создаём новую if (currentSession == null) { Sessions newSession = new Sessions { Date = dt, Time = ts, GroupId = GroupId }; // Добавляем в бд db.Sessions.Add(newSession); db.SaveChanges(); // Ищем её в БД currentSession = db.Sessions.Where(x => x.Date == dt && x.Time == ts && x.GroupId == grId).FirstOrDefault(); // Снова не найдена? Тогда произошла ошибка if (currentSession == null) { MessageBox.Show("Критическая ошибка. Сессия не была добавлена после того, как была предпринята попытка ее добавить."); return(-1); } } currentSessionId = currentSession.SessionId; } return(currentSessionId); }