public async Task <IActionResult> OnGetAsync(int?id, bool?saveChangesError = false)
        {
            var studentClient = new Services.Student.StudentClient();

            studentClient.Endpoint.Address = new System.ServiceModel.EndpointAddress(webserviceUrl);

            if (id == null)
            {
                return(NotFound());
            }


            var studentContract = await studentClient.GetByIdAsync(id.Value);

            Student = new Student()
            {
                EnrollmentDate = studentContract.EnrollmentDate,
                FirstMidName   = studentContract.FirstMidName,
                ID             = studentContract.ID,
                LastName       = studentContract.LastName,
                Enrollments    = new List <Enrollment>()
            };

            if (studentContract.Enrollments != null)
            {
                foreach (var enrollmentContract in studentContract.Enrollments)
                {
                    var enrollment = new Enrollment()
                    {
                        CourseID     = enrollmentContract.CourseID,
                        Grade        = enrollmentContract.Grade,
                        StudentID    = enrollmentContract.StudentID,
                        EnrollmentID = enrollmentContract.EnrollmentID,
                        Course       = new Course()
                    };

                    if (enrollmentContract.Course != null)
                    {
                        enrollment.Course = new Course()
                        {
                            CourseID = enrollmentContract.CourseID,
                            Title    = enrollmentContract.Course.Title
                        };
                    }

                    Student.Enrollments.Add(enrollment);
                }
            }

            if (Student == null)
            {
                return(NotFound());
            }

            return(Page());
        }
        public async Task <IActionResult> OnPostAsync()
        {
            var emptyStudent = new Student();

            var studentClient = new Services.Student.StudentClient();

            studentClient.Endpoint.Address = new System.ServiceModel.EndpointAddress(webserviceUrl);

            if (await TryUpdateModelAsync <Student>(
                    emptyStudent,
                    "student", // Prefix for form value.
                    s => s.FirstMidName, s => s.LastName, s => s.EnrollmentDate))
            {
                studentClient.Create(new Services.Contract.Student()
                {
                    EnrollmentDate = emptyStudent.EnrollmentDate, FirstMidName = emptyStudent.FirstMidName, LastName = emptyStudent.LastName
                });
                return(RedirectToPage("./Index"));
            }
            #endregion

            return(Page());
        }
        public async Task OnGetAsync(string sortOrder,
                                     string currentFilter, string searchString, int?pageIndex)
        {
            CurrentSort = sortOrder;
            NameSort    = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            DateSort    = sortOrder == "Date" ? "date_desc" : "Date";
            if (searchString != null)
            {
                pageIndex = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            CurrentFilter = searchString;

            var studentClient = new Services.Student.StudentClient();

            studentClient.Endpoint.Address = new System.ServiceModel.EndpointAddress(webserviceUrl);
            var studentContractList = studentClient.SearchAsync().Result.ToList();

            Students = new List <Student>();
            foreach (var studentContract in studentContractList)
            {
                var studentModel = new Student()
                {
                    EnrollmentDate = studentContract.EnrollmentDate,
                    FirstMidName   = studentContract.FirstMidName,
                    LastName       = studentContract.LastName,
                    ID             = studentContract.ID,
                    Enrollments    = new List <Enrollment>()
                };

                Students.Add(item: studentModel);
            }
        }