Esempio n. 1
0
        private void TimeFree(DataGridViewCell cell)
        {
            SchedulePointer pointer = cell.Tag as SchedulePointer;

            SetCellFreeStyle(cell, pointer);

            ScheduleLesson lesson1 = Schedule.GetLesson(pointer.Time1, pointer.Room1);

            if (lesson1 != null)
            {
                lesson1.Clear();
            }

            ScheduleLesson lesson2 = Schedule.GetLesson(pointer.Time2, pointer.Room2);

            if (lesson2 != null)
            {
                lesson2.Clear();
            }

            string Name = dgvSchedule.Rows[cell.RowIndex].Cells[0].Value.ToString();

            Schedule.Employments.RemoveInView(ViewShedule, new Employment(Name, pointer.Time1, ReasonEmployment.Another));
            Schedule.Employments.RemoveInView(ViewShedule, new Employment(Name, pointer.Time2, ReasonEmployment.Another));
        }
Esempio n. 2
0
 private void ThrowIfNotValidate(ScheduleLesson lesson)
 {
     if (lesson.StartTime >= lesson.EndTime)
     {
         throw new ApplicationException($"Дата начала урока [{lesson.StartTime}] больше окончания [{lesson.EndTime}]");
     }
 }
Esempio n. 3
0
        private void ViewSelectLesson(DataGridViewCell cell)
        {
            SchedulePointer Tag = cell.Tag as SchedulePointer;

            ScheduleLesson lesson1 = Schedule.GetLesson(Tag.Time1, Tag.Room1);
            ScheduleLesson lesson2 = Schedule.GetLesson(Tag.Time2, Tag.Room2);

            if (NumSelectLesson == 1)
            {
                SetDataSelectLessonForm(lesson1, lesson2, txtTeacher1, txtDiscipline1, txtRoom1, txtTypeLesson1);

                L1 = lesson1;
                L2 = lesson2;
                T1 = Tag.Time1.Copy();
                T2 = Tag.Time2.Copy();
            }
            else if (NumSelectLesson == 2)
            {
                SetDataSelectLessonForm(lesson1, lesson2, txtTeacher2, txtDiscipline2, txtRoom2, txtTypeLesson2);

                L3 = lesson1;
                L4 = lesson2;
                T3 = Tag.Time1.Copy();
                T4 = Tag.Time2.Copy();
            }

            NumSelectLesson = 0;
        }
Esempio n. 4
0
        private static void SetElementView(List <ScheduleLesson> LessonsByView, string nameElementProjection,
                                           ScheduleClasses.View view, ScheduleWeeks Shedule, DataGridView table, Employments Employments, bool watchAll)
        {
            for (int Hour = 1; Hour <= Shedule.Setting.CountLessonsOfDay; Hour++)
            {
                DataGridViewRow row = CreateNewRow(table, nameElementProjection, ScheduleTime.GetHourDiscription(Hour));

                for (int Week = 1, CellIndex = 2; Week <= Shedule.Setting.CountWeeksShedule; Week++)
                {
                    for (int Day = 1; Day <= Shedule.Setting.CountDaysEducationWeek; Day++, CellIndex++)
                    {
                        //время занятия на 1-2 недели
                        ScheduleTime Time1 = new ScheduleTime((Week)Week, (ScheduleClasses.Day)Day, Hour);
                        //время занятия на 3-4 недели
                        ScheduleTime Time2 = GetTimeAfterTwoWeek(Time1);

                        //занятие на 1-2 недели
                        ScheduleLesson item1 = Shedule.FindLessonInList(LessonsByView, Time1);
                        //занятие на 3-4 недели
                        ScheduleLesson item2 = Shedule.FindLessonInList(LessonsByView, Time2);

                        string Room1 = item1 != null ? item1.Room : String.Empty;
                        string Room2 = item2 != null ? item2.Room : String.Empty;

                        Employment employmentCell = FindEmployment(view, Employments, nameElementProjection, Time1);

                        string cellContent = item1 == null && item2 == null ? String.Empty : IsLessonsEqualAndNonEmpty(item1, item2) ?
                                             GetCellContentIdenticalLessons(view, item1) : GetCellContentDiffrentLessons(view, item1, item2);

                        // задать значения ячейки в
                        DataGridViewCell cell = row.Cells[CellIndex];
                        cell.Value = cellContent;
                        cell.Tag   = new SchedulePointer(Time1, Time2, Room1, Room2);
                        // задать цвет и стиль ячейке
                        if (cellContent != String.Empty)
                        {
                            cell.Style.BackColor = IsLessonsEqualAndNonEmpty(item1, item2) ? Color.LightGreen : Color.LightGreen;
                        }

                        if (employmentCell != null && employmentCell.Reason == ReasonEmployment.UserBlocked)
                        {
                            SetCellBlockedStyle(cell);
                        }
                    }
                }

                if (watchAll || (!watchAll && Shedule.Lessons.Where(x => x.Hour == Hour && !x.IsEmpty).Count() > 0))
                {
                    table.Rows.Add(row);
                }
            }

            //добавить разделитель
            int index = table.Rows.GetLastRow(DataGridViewElementStates.None);

            if (index >= 0)
            {
                table.Rows[index].DividerHeight = 3;
            }
        }
Esempio n. 5
0
        private void SetRoomsUI(ComboBox cmb, ScheduleLesson lesson, ScheduleTime time)
        {
            List <string> rooms = new List <string>();

            foreach (ScheduleRoom room in Rooms)
            {
                if (Employments.Rooms.IsFree(room.Name, time))
                {
                    rooms.Add(room.Name);
                }
            }

            if (lesson != null)
            {
                rooms.Add(lesson.Room);
            }
            BindingSource bs = new BindingSource();

            bs.DataSource  = rooms;
            cmb.DataSource = bs;
            cmb.Text       = (lesson != null && !lesson.IsEmpty) ? lesson.Room : String.Empty;
            if (lesson == null || lesson.IsEmpty)
            {
                cmb.SelectedItem = null;
            }
        }
Esempio n. 6
0
        private void SetGroupsUI(ListView ChooiceGroups, ListView AccessGroups,
                                 ScheduleLesson lesson, ScheduleTime time)
        {
            List <string> AccGroups = new List <string>();
            List <string> ChcGroups = new List <string>();

            foreach (string group in Adapter.NamesGroups)
            {
                if (Employments.Groups.IsFree(group, time))
                {
                    AccGroups.Add(group);
                }
            }

            if (lesson != null && !lesson.IsEmpty)
            {
                ChcGroups.AddRange(lesson.Groups);
            }

            foreach (string group in ChcGroups)
            {
                ChooiceGroups.Items.Add(new ListViewItem(group)
                {
                    ImageIndex = 0
                });
            }

            foreach (string group in AccGroups)
            {
                AccessGroups.Items.Add(new ListViewItem(group)
                {
                    ImageIndex = 0
                });
            }
        }
Esempio n. 7
0
        private void SetTeachersUI(ComboBox cmb, ScheduleLesson lesson, ScheduleTime time)
        {
            List <string> Teachers = new List <string>();

            foreach (string teacher in Adapter.NamesTeachers)
            {
                if (Employments.Teachers.IsFree(teacher, time))
                {
                    Teachers.Add(teacher);
                }
            }

            if (lesson != null)
            {
                Teachers.Add(lesson.Teacher);
            }
            BindingSource bs = new BindingSource();

            bs.DataSource  = Teachers;
            cmb.DataSource = bs;
            cmb.Text       = (lesson != null && !lesson.IsEmpty) ? lesson.Teacher : String.Empty;
            if (lesson == null || lesson.IsEmpty)
            {
                cmb.SelectedItem = null;
            }
        }
Esempio n. 8
0
        public void FillLessons(Worksheet sheet, int monthStart, int row, int column, List <ScheduleLesson> tmp, Week week1, Week week2)
        {
            int startRow = row;

            for (int counterDay = 1; counterDay <= 6; counterDay++)
            {
                List <ScheduleLesson> query1 = (from x in tmp
                                                from p in x.Dates
                                                where x.Day == (ScheduleClasses.Day)counterDay && (x.Week == week1 || x.Week == week2)
                                                select x).ToList();

                List <int> Hours = (from x in query1 select x.Hour).Distinct().OrderBy(e => e).ToList();

                for (int i = 0; i < Hours.Count; i++)
                {
                    row = Hours[i] + ((Hours[i] - 1) * (lessonHorizontalMult - 1))
                          + ((counterDay - 1) * lsnCntMult * lessonHorizontalMult) + (startRow - 1);
                    List <ScheduleLesson> t1 = query1.Where(x => x.Hour == Hours[i] && x.Week == week1).ToList();
                    List <ScheduleLesson> t2 = query1.Where(x => x.Hour == Hours[i] && x.Week == week2).ToList();

                    ScheduleLesson lesson  = (t1.Count > 0) ? t1.First() : null;
                    ScheduleLesson lesson2 = (t2.Count > 0) ? t2.First() : null;

                    if (lesson != null && lesson2 != null && lesson.IsEqual(lesson2))
                    {
                        WriteLesson(sheet, row, column, 0, lesson, false);
                    }
                    else if (lesson != null && lesson2 != null && !lesson.IsEqual(lesson2))
                    {
                        WriteLesson(sheet, row, column, 0, lesson, true);
                        WriteLesson(sheet, row, column, 1, lesson2, true);
                    }
                    else
                    {
                        if (lesson != null)
                        {
                            WriteLesson(sheet, row, column, 0, lesson, true);
                        }
                        if (lesson2 != null)
                        {
                            WriteLesson(sheet, row, column, 0, lesson2, true);
                        }
                    }

                    if (!(lesson != null && lesson2 != null && !lesson.IsEqual(lesson2)))
                    {
                        Range range1 = new Range(sheet[column, row], sheet[column + 1, row]);
                        range1.Merge();
                        Range range2 = new Range(sheet[column, row + 1], sheet[column + 1, row + 1]);
                        range2.Merge();
                        Range range3 = new Range(sheet[column, row + 2], sheet[column + 1, row + 2]);
                        range3.Merge();
                        Range range4 = new Range(sheet[column, row + 3], sheet[column + 1, row + 3]);
                        range4.Merge();
                        Range range5 = new Range(sheet[column, row + 4], sheet[column + 1, row + 4]);
                        range5.Merge();
                    }
                }
            }
        }
        public Dictionary <string, ScheduleLesson[]> getDaysWuthScheduleLessons()
        {
            var schedule   = new Dictionary <string, ScheduleLesson[]>();
            var lessons    = context.Lessons.Where(l => l.TeacherId == Teacher.Id).ToList();
            var schLessons = new List <ScheduleLesson>();

            lessons.ForEach(
                l => {
                schLessons.AddRange(context.ScheduleLessons.Where(x => x.LessonId == l.Id).ToArray());
            }
                );
            for (int i = 0; i < days.Length; i++)
            {
                var dayLessons = new ScheduleLesson[ScheduleLesson.MAX_LESSONS_PER_DAY];
                schLessons.ForEach(
                    l => {
                    if (l.DayNumber == i + 1)
                    {
                        dayLessons[l.Order - 1] = l;
                    }
                }
                    );
                schedule.Add(days[i], dayLessons);
            }
            return(schedule);
        }
Esempio n. 10
0
 public void BindScheduleLesson(ScheduleLesson schedule)
 {
     _textViewLesson.Text = $"{schedule.LessonNumber} {ItemView.Context.GetString(Resource.String.lesson_str)}";
     _lessonNum           = schedule.LessonNumber - 1;
     _listViewLessons.SetAdapter(new ClassroomLessonAdapter(
                                     schedule.Classrooms
                                     .Where(arg => !String.IsNullOrEmpty(arg.Class) || !String.IsNullOrEmpty(arg.Subject)).ToList()));
 }
Esempio n. 11
0
        private void WriteLesson(WordTable table, int row, ScheduleLesson lesson, bool outdate)
        {
            string str = "";

            //0-я строчка
            if (view != ScheduleClasses.View.Group)
            {
                str = lesson.GroupsDescription;
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }

            //1-я строчка
            if (view == ScheduleClasses.View.Discipline)
            {
                str += " (" + ScheduleLessonType.Description(lesson.Type) + ")";
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }
            else
            {
                str = lesson.Discipline + " (" + ScheduleLessonType.Description(lesson.Type) + ")";
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }

            //2-я строчка
            if (outdate)
            {
                str = lesson.DatesDescription;
                getDateTimeOfLesson(str);
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }

            //3-я строчка
            if (view == ScheduleClasses.View.Teacher)
            {
                str = lesson.Room;
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }

            if (view == ScheduleClasses.View.Room)
            {
                str = lesson.Teacher;
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }

            if (view != ScheduleClasses.View.Teacher && view != ScheduleClasses.View.Room)
            {
                str = lesson.Teacher + " " + lesson.Room;
                table.Cell(row, 8).Write(str);
                table.Cell(row, 8).WriteLine();
            }
        }
Esempio n. 12
0
        private void SetDisciplinesUI(ComboBox cmb, ScheduleLesson lesson)
        {
            BindingSource bs = new BindingSource();

            bs.DataSource  = Adapter.NamesDisciplines;
            cmb.DataSource = bs;
            cmb.Text       = (lesson != null && !lesson.IsEmpty) ? lesson.Discipline : String.Empty;
            if (lesson == null || lesson.IsEmpty)
            {
                cmb.SelectedItem = null;
            }
        }
Esempio n. 13
0
        private void SetScheduleLesson(DayOfWeek day)
        {
            var sl1 = new ScheduleLesson
            {
                Id        = Guid.NewGuid().ToString(),
                Day       = day,
                StartTime = new TimeSpan(8, 0, 0),
                EndTime   = new TimeSpan(8, 45, 0)
            };

            ScheduleContext.Add(sl1);

            var sl2 = new ScheduleLesson
            {
                Id        = Guid.NewGuid().ToString(),
                Day       = day,
                StartTime = new TimeSpan(9, 0, 0),
                EndTime   = new TimeSpan(9, 45, 0)
            };

            ScheduleContext.Add(sl2);

            var sl3 = new ScheduleLesson
            {
                Id        = Guid.NewGuid().ToString(),
                Day       = day,
                StartTime = new TimeSpan(10, 0, 0),
                EndTime   = new TimeSpan(10, 45, 0)
            };

            ScheduleContext.Add(sl3);

            var sl4 = new ScheduleLesson
            {
                Id        = Guid.NewGuid().ToString(),
                Day       = day,
                StartTime = new TimeSpan(11, 0, 0),
                EndTime   = new TimeSpan(11, 45, 0)
            };

            ScheduleContext.Add(sl4);

            var sl5 = new ScheduleLesson
            {
                Id        = Guid.NewGuid().ToString(),
                Day       = day,
                StartTime = new TimeSpan(12, 0, 0),
                EndTime   = new TimeSpan(12, 45, 0)
            };

            ScheduleContext.Add(sl5);
            ScheduleContext.SaveChanges();
        }
Esempio n. 14
0
        public async Task <string> AddAsync(ScheduleLesson lesson)
        {
            ThrowIfNotValidate(lesson);
            await ThrowIdCantInsertAsync(lesson);

            var id = Guid.NewGuid().ToString();

            lesson.Id = id;
            _context.Add(lesson);
            await _context.SaveChangesAsync();

            return(id);
        }
Esempio n. 15
0
        private void ExchangeLessons(ScheduleLesson item1, ScheduleLesson item2, ScheduleTime time1, ScheduleTime time2)
        {
            if (item1 != null && item2 != null)
            {
                ScheduleLesson tmp1  = item1.Copy();
                ScheduleLesson less1 = Schedule.GetLesson(time1, item1.Room);
                ScheduleLesson less2 = Schedule.GetLesson(time2, item2.Room);

                Schedule.Employments.Remove(less1.Teacher, less1.Groups, less1.Room, less1.Time);
                Schedule.Employments.Remove(less2.Teacher, less2.Groups, less2.Room, less2.Time);

                less1.UpdateFields(item1.Teacher, item1.Discipline, item1.Groups, item1.Type, item2.Dates);
                less1.Time = item2.Time.Copy();
                less1.Room = item2.Room;

                less2.UpdateFields(item2.Teacher, item2.Discipline, item2.Groups, item2.Type, tmp1.Dates);
                less2.Time = tmp1.Time.Copy();
                less2.Room = tmp1.Room;

                Schedule.Employments.Add(less2.Teacher, less2.Groups, less2.Room, less2.Time, ReasonEmployment.UnionLesson);
                Schedule.Employments.Add(less1.Teacher, less1.Groups, less1.Room, less1.Time, ReasonEmployment.UnionLesson);
            }
            else if (item1 == null && item2 != null)
            {
                ScheduleLesson lsn = Schedule.GetLesson(time1, item2.Room);
                if (lsn.GroupsDescription != "" || lsn.Teacher != "" || lsn.Discipline != "")
                {
                    MessageBox.Show("Занято для " + item2.Week.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                ScheduleLesson lsn2 = Schedule.GetLesson(time2, item2.Room).Copy();
                Schedule.Employments.Remove(lsn2.Teacher, lsn2.Groups, lsn2.Room, lsn2.Time);
                lsn.UpdateFields(item2.Teacher, item2.Discipline, item2.Groups, item2.Type, lsn.Dates);
                item2.Clear();
                Schedule.Employments.Add(lsn.Teacher, lsn.Groups, lsn.Room, lsn.Time, ReasonEmployment.UnionLesson);
            }
            else if (item1 != null && item2 == null)
            {
                ScheduleLesson lsn = Schedule.GetLesson(time2, item1.Room);
                if (lsn.GroupsDescription != "" || lsn.Teacher != "" || lsn.Discipline != "")
                {
                    MessageBox.Show("Занято для " + item1.Week.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                ScheduleLesson lsn2 = Schedule.GetLesson(time1, item1.Room).Copy();
                Schedule.Employments.Remove(lsn2.Teacher, lsn2.Groups, lsn2.Room, lsn2.Time);
                lsn.UpdateFields(item1.Teacher, item1.Discipline, item1.Groups, item1.Type, lsn.Dates);
                item1.Clear();
                Schedule.Employments.Add(lsn.Teacher, lsn.Groups, lsn.Room, lsn.Time, ReasonEmployment.UnionLesson);
            }
        }
Esempio n. 16
0
 /// <summary>
 /// Сгенерировать предмет.
 /// </summary>
 /// <param name="classId">Идентификатор класса.</param>
 /// <param name="teacherId">Идентификатор учителя.</param>
 /// <param name="subjectId">Идентификатор предмета.</param>
 /// <param name="cabineteId">Идентификатор кабинета.</param>
 /// <param name="lesson">Сетка урока.</param>
 /// <returns>Фактическое занятие.</returns>
 private FactLesson GenerateLesson(string classId,
                                   string teacherId,
                                   string subjectId,
                                   string cabineteId,
                                   ScheduleLesson lesson)
 {
     return(new FactLesson
     {
         Id = Guid.NewGuid(),
         ClassId = classId,
         Lesson = lesson,
         SubjectId = subjectId,
         TeacherId = teacherId,
         Cabinete = cabineteId
     });
 }
Esempio n. 17
0
        private void SetDatesUI(ListView dates, ScheduleLesson lesson)
        {
            if (lesson == null)
            {
                return;
            }

            dates.Items.Clear();
            foreach (DateTime date in lesson.Dates)
            {
                string title = String.Format("{0:dd} {0:MMMM} {0:yyyy}", date);
                dates.Items.Add(new ListViewItem(title)
                {
                    ImageIndex = 1, Tag = date
                });
            }
        }
Esempio n. 18
0
        private static string GetLessonInfoFormat1(ScheduleClasses.View view, ScheduleLesson lesson)
        {
            string format = "{0} \n {1} \n {2} \n {3}";

            switch (view)
            {
            case ScheduleClasses.View.Teacher: return(String.Format(format, lesson.Discipline, ScheduleLessonType.Description(lesson.Type), lesson.GroupsDescription, lesson.Room));

            case ScheduleClasses.View.Discipline: return(String.Format(format, lesson.GroupsDescription, ScheduleLessonType.Description(lesson.Type), lesson.Teacher, lesson.Room));

            case ScheduleClasses.View.Group: return(String.Format(format, lesson.Discipline, ScheduleLessonType.Description(lesson.Type), lesson.Teacher, lesson.Room));

            case ScheduleClasses.View.Room: return(String.Format(format, lesson.Discipline, ScheduleLessonType.Description(lesson.Type), lesson.Teacher, lesson.GroupsDescription));

            default: return(String.Empty);
            }
        }
Esempio n. 19
0
        private void SetDataSelectLessonForm(ScheduleLesson item1, ScheduleLesson item2, Label txtTeacher, Label txtDiscipline,
                                             Label txtRoom, Label txtTypeLesson)
        {
            if (item1 == null && item2 == null)
            {
                txtTeacher.Text = txtDiscipline.Text = txtRoom.Text = txtTypeLesson.Text = String.Empty;
                return;
            }

            txtTeacher.Text = (item1 != null ? item1.Teacher : String.Empty) + " / " + (item2 != null ? item2.Teacher : String.Empty);

            txtDiscipline.Text = (item1 != null ? item1.Discipline : String.Empty) + " / " + (item2 != null ? item2.Discipline : String.Empty);

            txtRoom.Text = (item1 != null ? item1.Room : String.Empty) + " / " + (item2 != null ? item2.Room : String.Empty);

            txtTypeLesson.Text = (item1 != null ? ScheduleLessonType.Description(item1.Type) : String.Empty) + " / " +
                                 (item2 != null ? ScheduleLessonType.Description(item2.Type) : String.Empty);
        }
        /// <summary>
        /// Определяет расписание ученика или учителя
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public Dictionary <string, ScheduleLesson[]> getDaysWithScheduleLessons(string userId)
        {
            var schedule = new Dictionary <string, ScheduleLesson[]>();

            var childrenData = context.ChildrenData.FirstOrDefault(d => d.ChildrenId == userId);
            var lessons      = context.ScheduleLessons.Where(l => childrenData.SchoolClassId == l.SchoolClassId).Select(x => x).ToArray();

            for (int i = 0; i < days.Length; i++)
            {
                var schLessons = new ScheduleLesson[ScheduleLesson.MAX_LESSONS_PER_DAY];
                var ls         = lessons.Where(l => l.DayNumber == i + 1).OrderBy(l => l.Order).Select(x => x).ToArray();
                for (int o = 0; o < ls.Length; o++)
                {
                    schLessons[ls[o].Order - 1] = ls[o];
                }
                schedule.Add(days[i], schLessons);
            }
            return(schedule);
        }
Esempio n. 21
0
        private async Task ThrowIdCantInsertAsync(ScheduleLesson lesson)
        {
            var actuaLessons = await _context.ScheduleLessons.Where(x => x.Day == lesson.Day).ToListAsync();

            if (actuaLessons.Any(x => x.StartTime >= lesson.StartTime && x.EndTime <= lesson.StartTime))
            {
                throw new ApplicationException("Время начала не совпадает");
            }

            if (actuaLessons.Any(x => x.StartTime >= lesson.EndTime && x.EndTime <= lesson.EndTime))
            {
                throw new ApplicationException("Время окончания не совпадает");
            }

            if (actuaLessons.Any(x => x.StartTime < lesson.StartTime && x.EndTime > lesson.EndTime))
            {
                throw new ApplicationException("Временной промежуток не совпадает");
            }
        }
Esempio n. 22
0
        private void SetLessonTypesUI(ComboBox cmb, ScheduleLesson lesson)
        {
            BindingSource bs = new BindingSource();

            if (Type == scheduleType.leesons)
            {
                bs.DataSource = ScheduleLessonType.GetBaseType();
            }
            else
            {
                bs.DataSource = SheduleExamType.GetBaseType();
            }
            cmb.DisplayMember = "Detail";
            cmb.ValueMember   = "TypeCode";
            cmb.DataSource    = bs;
            cmb.Text          = (lesson != null && !lesson.IsEmpty) ? ScheduleLessonType.Description(lesson.Type) : String.Empty;
            if (lesson == null || lesson.IsEmpty)
            {
                cmb.SelectedItem = null;
            }
        }
Esempio n. 23
0
        private void btnAccept_Click(object sender, EventArgs e)
        {
            if (!((cmbDiscipline1.Text != "" && cmbRooms1.Text != "" &&
                   cmbTypeLesson1.SelectedValue != null && cmbTeacher1.Text != "") ||
                  ((cmbDiscipline1.Text == "" && cmbRooms1.Text == "" &&
                    cmbTypeLesson1.SelectedValue == null && cmbTeacher1.Text == ""))))
            {
                MessageBox.Show("Введены не все \n\rзначения для 1-2 недели", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (!((cmbDiscipline2.Text != "" && cmbRooms2.Text != "" &&
                   cmbTypeLesson2.SelectedValue != null && cmbTeacher2.Text != "") ||
                  ((cmbDiscipline2.Text == "" && cmbRooms2.Text == "" &&
                    cmbTypeLesson2.SelectedValue == null && cmbTeacher2.Text == ""))))
            {
                MessageBox.Show("Введены не все \n\rзначения для 3-4 недели", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (Lesson1 != null)
            {
                Employments.Remove(Lesson1.Teacher, Lesson1.Groups, Lesson1.Room, Time1);
            }

            if (Lesson1 == null)
            {
                Lesson1 = Shedule.GetLesson(Time1, cmbRooms1.Text);
            }

            if (Lesson1 != null)
            {
                Lesson1.Discipline = cmbDiscipline1.Text;

                Lesson1.Room = cmbRooms1.Text;

                Lesson1.Type = (LessonType)cmbTypeLesson1.SelectedValue;

                Lesson1.Teacher = cmbTeacher1.Text;

                Lesson1.Groups.Clear();
                foreach (ListViewItem Item in lvSelectGroup1.Items)
                {
                    Lesson1.Groups.Add(Item.Text);
                }

                Lesson1.Dates.Clear();
                foreach (ListViewItem Item in lvDates1.Items)
                {
                    Lesson1.Dates.Add(Convert.ToDateTime(Item.Text));
                }

                Employments.Add(Lesson1.Teacher, Lesson1.Groups, Lesson1.Room, Time1, ReasonEmployment.UnionLesson);
            }

            //-------------------------------------------
            if (Lesson2 != null)
            {
                Employments.Remove(Lesson2.Teacher, Lesson2.Groups, Lesson2.Room, Time2);
            }

            if (Lesson2 == null)
            {
                Lesson2 = Shedule.GetLesson(Time2, cmbRooms2.Text);
            }

            if (Lesson2 != null)
            {
                Lesson2.Discipline = cmbDiscipline2.Text;

                Lesson2.Room = cmbRooms2.Text;

                Lesson2.Type = (LessonType)cmbTypeLesson2.SelectedValue;

                Lesson2.Teacher = cmbTeacher2.Text;

                Lesson2.Groups.Clear();
                foreach (ListViewItem Item in lvSelectGroup2.Items)
                {
                    Lesson2.Groups.Add(Item.Text);
                }

                Lesson2.Dates.Clear();
                foreach (ListViewItem row in lvDates2.Items)
                {
                    Lesson2.Dates.Add(Convert.ToDateTime(row.Text));
                }

                Employments.Add(Lesson2.Teacher, Lesson2.Groups, Lesson2.Room, Time2, ReasonEmployment.UnionLesson);
            }

            this.DialogResult = System.Windows.Forms.DialogResult.OK;

            this.Close();
        }
Esempio n. 24
0
        private void FillLessons(WordTable table, int monthStart, int row, List <ScheduleLesson> tmp, Week week1, Week week2)
        {
            int column = 1;

            for (int counterDay = 1; counterDay <= 6; counterDay++)
            {
                column = 1;
                for (int counterMonth = monthStart; counterMonth < monthStart + 5; counterMonth++)
                {
                    List <int> numbers = (from x in tmp
                                          from p in x.Dates
                                          where x.Day == (ScheduleClasses.Day)counterDay &&
                                          p.Month == counterMonth && (x.Week == week1 || x.Week == week2)
                                          select p.Day).Distinct().OrderBy(e => e).ToList();

                    foreach (int day in numbers)
                    {
                        table.Cell(row, column).WriteLine();
                        table.Cell(row, column).Write(day.ToString());
                    }
                    column++;
                }

                List <ScheduleLesson> query1 = (from x in tmp
                                                from p in x.Dates
                                                where x.Day == (ScheduleClasses.Day)counterDay && (x.Week == week1 || x.Week == week2)
                                                select x).ToList();

                List <int> Hours = (from x in query1 select x.Hour).Distinct().OrderBy(e => e).ToList();

                foreach (int hour in Hours)
                {
                    string str = "";
                    str = ScheduleTime.GetHourDiscription(hour);
                    table.Cell(row, 7).Write(str);
                    table.Cell(row, 7).WriteLine();
                }

                for (int i = 0; i < Hours.Count; i++)
                {
                    List <ScheduleLesson> t1 = query1.Where(x => x.Hour == Hours[i] && x.Week == week1).ToList();
                    List <ScheduleLesson> t2 = query1.Where(x => x.Hour == Hours[i] && x.Week == week2).ToList();

                    ScheduleLesson lesson  = (t1.Count > 0) ? t1.First() : null;
                    ScheduleLesson lesson2 = (t2.Count > 0) ? t2.First() : null;

                    if (lesson != null && lesson2 != null && lesson.IsEqual(lesson2))
                    {
                        WriteLesson(table, row, lesson, false);


                        if (i + 1 < Hours.Count)
                        {
                            List <ScheduleLesson> Next1 = query1.Where(x => x.Hour == Hours[i + 1] && x.Week == week1).ToList();
                            ScheduleLesson        next1 = (t1.Count > 0) ? t1.First() : null;

                            List <ScheduleLesson> Next2 = query1.Where(x => x.Hour == Hours[i + 1] && x.Week == week2).ToList();
                            ScheduleLesson        next2 = (t1.Count > 0) ? t1.First() : null;


                            if (next1 != null && next2 != null && next1.IsEqual(next2) && lesson.IsEqual(next1))
                            {
                                i++;
                            }
                        }
                    }
                    else
                    {
                        if (lesson != null)
                        {
                            if (lesson2 == null)
                            {
                                WriteLesson(table, row, lesson, false);
                            }
                            else
                            {
                                WriteLesson(table, row, lesson, true);
                            }

                            if (i + 1 < Hours.Count)
                            {
                                List <ScheduleLesson> Next = query1.Where(x => x.Hour == Hours[i + 1] && x.Week == week1).ToList();
                                ScheduleLesson        next = (Next.Count > 0) ? Next.First() : null;

                                if (next != null && lesson.IsEqual(next))
                                {
                                    i++;
                                }
                            }
                        }

                        if (lesson2 != null)
                        {
                            if (lesson == null)
                            {
                                WriteLesson(table, row, lesson2, false);
                            }
                            else
                            {
                                WriteLesson(table, row, lesson2, true);
                            }

                            if (i + 1 < Hours.Count)
                            {
                                List <ScheduleLesson> Next = query1.Where(x => x.Hour == Hours[i + 1] && x.Week == week2).ToList();
                                ScheduleLesson        next = (Next.Count > 0) ? Next.First() : null;

                                if (next != null && lesson2.IsEqual(next))
                                {
                                    i++;
                                }
                            }
                        }
                    }
                }
                row++;
            }
        }
Esempio n. 25
0
        void WriteLesson(Worksheet sheet, int row, int column, int subClmnShift, ScheduleLesson lesson, bool outdate)
        {
            string str = "";

            //0-я строчка
            if (view != ScheduleClasses.View.Group)
            {
                str = lesson.GroupsDescription;
                switch (view)
                {
                case ScheduleClasses.View.Discipline: sheet[column + subClmnShift, row].Value = str;
                    break;

                case ScheduleClasses.View.Room: sheet[column + subClmnShift, row + 4].Value = str;
                    break;

                case ScheduleClasses.View.Teacher: sheet[column + subClmnShift, row + 3].Value = str;
                    break;
                }
            }

            //1-я строчка
            if (view == ScheduleClasses.View.Discipline)
            {
                sheet[column + subClmnShift, row].Value     = str;
                sheet[column + subClmnShift, row + 1].Value = "(" + ScheduleLessonType.Description(lesson.Type) + ")";
            }
            else
            {
                str = lesson.Discipline;
                sheet[column + subClmnShift, row].Value     = str;
                sheet[column + subClmnShift, row + 1].Value = "(" + ScheduleLessonType.Description(lesson.Type) + ")";
            }

            //2-я строчка
            if (outdate)
            {
                str = lesson.DatesDescription;
                sheet[column + subClmnShift, row + 2].Value = str;
            }
            else
            {
                sheet[column + subClmnShift, row + 2].Value = "";
            }


            //3-я строчка
            if (view == ScheduleClasses.View.Teacher)
            {
                str = lesson.Room;
                sheet[column + subClmnShift, row + 4].Value = str;
            }

            if (view == ScheduleClasses.View.Room)
            {
                str = lesson.Teacher;
                sheet[column + subClmnShift, row + 3].Value = str;
            }

            if (view != ScheduleClasses.View.Teacher && view != ScheduleClasses.View.Room)
            {
                sheet[column + subClmnShift, row + 3].Value = lesson.Teacher;
                sheet[column + subClmnShift, row + 4].Value = lesson.Room;
            }
        }
Esempio n. 26
0
 private static bool IsLessonsEqualAndNonEmpty(ScheduleLesson item1, ScheduleLesson item2)
 {
     return(item1 != null && item2 != null && item1.Discipline == item2.Discipline &&
            item1.Room == item2.Room && item1.Teacher == item2.Teacher && item1.Type == item2.Type);
 }
Esempio n. 27
0
 private static string GetCellContentIdenticalLessons(ScheduleClasses.View view, ScheduleLesson item)
 {
     return(GetLessonInfoFormat1(view, item));
 }
Esempio n. 28
0
        private static string GetCellContentDiffrentLessons(ScheduleClasses.View view, ScheduleLesson item1, ScheduleLesson item2)
        {
            string content = String.Empty;

            content += item1 != null?GetLessonInfoFormat2(view, item1) : emptyLesson;

            content += Environment.NewLine + splitLine + Environment.NewLine;
            content += item2 != null?GetLessonInfoFormat2(view, item2) : emptyLesson;

            return(content);
        }