private void TilesGenerate()
        {
            //Looking for startDate and finishDate
            Diapazon diapazon   = new Diapazon(KeyDate);
            DateTime startDate  = diapazon.startDate;
            DateTime finishDate = diapazon.finishDate;

            DateTime date          = startDate;
            int      baseLeft      = 40;
            int      tileWidth     = 49;
            int      betweenTilesV = 1;
            int      betweenTilesH = 7;
            int      baseTop       = 60;
            int      tileHeight    = 6;

            tiles.Clear();
            for (int day = 0; day < 21; day++) //Three weeks
            {
                for (int unit = 0; unit < 24 * 4; unit++)
                { //for possible lesson unit per hour
                    Tile tile = new Tile();

                    tile.left  = baseLeft + day * (tileWidth + betweenTilesH);
                    tile.width = tileWidth;

                    tile.top    = baseTop + unit * (tileHeight + betweenTilesV);
                    tile.height = tileHeight;

                    //tile.text = "Tile"
                    bool isEvenHour = unit / 4 % 2 == 0;
                    if (isEvenHour)
                    {
                        tile.color = Color.LightSeaGreen;
                    }

                    tiles.Add(tile);
                }
            }

            LessonsListManager lessonsListManager = new LessonsListManager(dbPath);
            List <LessonInfo>  lessonInfos        = lessonsListManager.getLessonsList(startDate, finishDate);

            for (int i = 0; i < lessonInfos.Count; i++)
            {
                LessonInfo lessonInfo = lessonInfos[i];

                int      tileNum        = 0;
                DateTime lessonDateTime = startDate;
                while (lessonDateTime < lessonInfo.DateAndTime)
                {
                    lessonDateTime = lessonDateTime.AddMinutes(15); //***
                    tileNum++;
                }

                tiles[tileNum].height = lessonInfo.duration * tileHeight + (lessonInfo.duration - 1) * betweenTilesV;
                tiles[tileNum].text   = lessonInfo.studentInfo.name;
                tiles[tileNum].color  = Color.LightGreen;
                tiles[tileNum].free   = false;
            }
        }
Ejemplo n.º 2
0
        private void RefreshTilesTimeTable()
        {
            //Менеджер плиток лезет в БД и получает список уроков за отображаемый период
            //Дальше менеджер настраивает плитки: нужным плиткам устанавливается размер в соотвествии
            //с длиной урока. В плитку вписывается имя студента. Цвет плитки выбирается в зависимости от
            //дополнительных условий(урок запланирован, проведён, оплачен)
            DateTime dateTime = dateTimePicker1.Value;
            TimeTableActiveTilesManager timeTableActiveTilesManager = new TimeTableActiveTilesManager(dateTime, dbPath);

            int n = timeTableActiveTilesManager.tiles.Count;

            //TODO
            for (int i = 0; i < n; i++)
            {
                //ToDO: работать только с теми плитками, кторіе изменились.
                Tile tile = timeTableActiveTilesManager.tiles[i];
                //TODO  Настройка кнопок, что бы их цвет, размеры и надписи соответствовали
                //соответствующим плиткам

                tilesButtons[i].Left      = tile.left;
                tilesButtons[i].Height    = tile.height;
                tilesButtons[i].BackColor = tile.color;
                tilesButtons[i].FlatStyle = FlatStyle.Flat;
                tilesButtons[i].FlatAppearance.BorderColor = tile.color;
                tilesButtons[i].Text = tile.text;

                if (!tile.free)
                {
                    tilesButtons[i].FlatStyle = FlatStyle.Flat;
                    tilesButtons[i].FlatAppearance.BorderColor = tile.color;
                    tilesButtons[i].BringToFront();
                }
            }

            //Проставляем вверху даты
            Diapazon diapazon = new Diapazon(dateTimePicker1.Value);

            for (int i = 0; i < datesLabels.Count; i++)
            {
                DateTime current = diapazon[i];
                string   s       = current.ToString("dd/MM");
                datesLabels[i].Text      = s;
                datesLabels[i].ForeColor = Color.Black;
                if (current.Day == dateTimePicker1.Value.Day)
                {
                    datesLabels[i].ForeColor = Color.DarkOrange;
                }
            }
        }