public void loadAssignmentExecuted()
 {
     using (var service = new ClassAdministrationServiceClient(new BasicHttpBinding(), new EndpointAddress(BUTEClassAdministrationClient.Properties.Resources.endpointAddress)))
     {
         Group[] groups = service.ReadGroupsFromSemester(SelectedSemester.Id);
         AssignmentViewModel assignmentViewModel = new AssignmentViewModel(groups.ToList());
     }
 }
        public void assignExecuted()
        {
            using (var service = new ClassAdministrationServiceClient(new BasicHttpBinding(), new EndpointAddress(BUTEClassAdministrationClient.Properties.Resources.endpointAddress)))
            {
                List<Course> courses = service.ReadCoursesFromSemester(SelectedSemester.Id).ToList();
                List<Instructor> instructors = service.ReadInstructors().ToList();
                List<Instructor>.Enumerator instructorEnumerator = instructors.GetEnumerator();
                List<Group> groups = new List<Group>();
                List<Room> rooms = service.ReadRooms().ToList();
                List<Room>.Enumerator roomEnumerator = rooms.GetEnumerator();

                try
                {
                    groupIndex = 0;
                    foreach (var course in courses)
                    {
                        List<Student> students = service.ReadStudentsFromCourse(course.Id).ToList();

                        // no group for empty courses --> continue with the other courses
                        if (students.Count() == 0) continue;

                        // create new group
                        groups.Add(newGroup(ref roomEnumerator, ref instructorEnumerator, course));

                        foreach (var student in students)
                        {
                            Group group = groups.Last();

                            // if we reached the maximum computer count, add new group
                            if (group.Student.Count() == group.Room.Computer_count)
                            {
                                groups.Add(newGroup(ref roomEnumerator, ref instructorEnumerator, course));
                                group = groups.Last();
                            }

                            // set the students group and add the student to the collection
                            group.Student.Add(student);
                        }
                    }

                } catch (Exception e) {
                    throw e;
                }

                // UI
                AssignmentViewModel assignmentViewModel = new AssignmentViewModel(groups);
            }
        }