示例#1
0
 public GroupsAndSubjectsVM(SubjectInform InformationAboutSubject, Subject[] subjects) : this(subjects)
 {
     lectureHour.Value    = InformationAboutSubject.LectureHour;
     exerciseHour.Value   = InformationAboutSubject.ExerciseHour;
     laboratoryHour.Value = InformationAboutSubject.LaboratoryHour;
     subject.Value        = subjects.Single(s => s.CodeOfSubject == InformationAboutSubject.Subject.CodeOfSubject);
 }
示例#2
0
 public void SaveAndClose(Window obj)
 {
     if (Subject != null && LectureHour >= 0 && ExerciseHour >= 0 && LaboratoryHour >= 0)
     {
         InformationAboutSubjects = new SubjectInform
         {
             Subject        = Subject,
             LectureHour    = LectureHour,
             ExerciseHour   = ExerciseHour,
             LaboratoryHour = LaboratoryHour
         };
         obj.DialogResult = true;
         obj.Close();
     }
 }
示例#3
0
        public GroupsAndSubjects[] ReadGroupsAndSubjects(int term)
        {
            List <GroupsAndSubjects> grandsb  = new List <GroupsAndSubjects>();
            List <SubjectInform>     subjlist = new List <SubjectInform>();

            if (Open())
            {
                using (FbTransaction dbtran = conn.BeginTransaction())
                {
                    using (FbCommand selectCommand = new FbCommand())
                    {
                        selectCommand.CommandText = "select id_group, name_of_group, term, groups.id_department, d1.name_of_department, id_subject, name_of_subject, subjects.id_department, d2.name_of_department, lecturehour, exercisehour, labhour,  f1.id_faculty, f1.name_of_faculty " +
                                                    "from (GroupsAndSubjects join Groups using(id_group) join departments d1 on d1.id_department = groups.id_department join Subjects using(id_subject) join departments d2 on d2.id_department = subjects.id_department join faculty f1 on d1.id_faculty = f1.id_faculty)  where term = @Term";
                        selectCommand.Connection  = conn;
                        selectCommand.Transaction = dbtran;
                        selectCommand.Parameters.AddWithValue("@Term", term);
                        FbDataReader reader = selectCommand.ExecuteReader();
                        while (reader.Read())
                        {
                            if (!grandsb.Exists(g => g.Group.CodeOfGroup == reader.GetInt32(0)))
                            {
                                var sbinf = new SubjectInform
                                {
                                    Subject = new Subject
                                    {
                                        CodeOfSubject = reader.GetInt32(5),
                                        NameOfSubject = reader.GetString(6),
                                        Department    = new Department
                                        {
                                            CodeOfDepartment = reader.GetInt32(7),
                                            NameOfDepartment = reader.GetString(8)
                                        }
                                    },
                                    LectureHour    = reader.GetInt32(9),
                                    ExerciseHour   = reader.GetInt32(10),
                                    LaboratoryHour = reader.GetInt32(11)
                                };
                                subjlist.Add(sbinf);

                                var GroupsSubjects = new GroupsAndSubjects
                                {
                                    Group = new Group
                                    {
                                        CodeOfGroup = reader.GetInt32(0),
                                        NameOfGroup = reader.GetString(1),
                                        Term        = reader.GetInt32(2),
                                        Department  = new Department
                                        {
                                            CodeOfDepartment = reader.GetInt32(3),
                                            NameOfDepartment = reader.GetString(4),
                                            Faculty          = new Faculty
                                            {
                                                CodeOfFaculty = reader.GetInt32(12),
                                                NameOfFaculty = reader.GetString(13)
                                            }
                                        }
                                    },
                                    InformationAboutSubjects = subjlist.ToArray()
                                };
                                grandsb.Add(GroupsSubjects);
                                subjlist.Clear();
                            }
                            else
                            {
                                var sbinf = new SubjectInform
                                {
                                    Subject = new Subject
                                    {
                                        CodeOfSubject = reader.GetInt32(5),
                                        NameOfSubject = reader.GetString(6),
                                        Department    = new Department
                                        {
                                            CodeOfDepartment = reader.GetInt32(7),
                                            NameOfDepartment = reader.GetString(8)
                                        }
                                    },
                                    LectureHour    = reader.GetInt32(9),
                                    ExerciseHour   = reader.GetInt32(10),
                                    LaboratoryHour = reader.GetInt32(11)
                                };
                                foreach (var group in grandsb)
                                {
                                    if (group.Group.CodeOfGroup == reader.GetInt32(0))
                                    {
                                        var temp = group.InformationAboutSubjects.Append(sbinf);
                                        group.InformationAboutSubjects = temp.ToArray();
                                    }
                                }
                            }
                        }
                    }
                    dbtran.Commit();
                    return(grandsb.ToArray());
                }
            }
            return(null);
        }