Beispiel #1
0
        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();
        }
Beispiel #2
0
 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;
         }
     }
 }
Beispiel #3
0
 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;
         }
     }
 }
Beispiel #4
0
        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);
        }