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; } }
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; } } }