Exemple #1
0
        public async Task <ActionResult <StudentReadDTO> > GetStudent(int id)
        {
            var student = await context.Students.FindAsync(id);

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

            StudentReadDTO studentData = MapStudentToDTO(student);

            return(studentData);
        }
Exemple #2
0
        public async Task <ActionResult <IEnumerable <StudentReadDTO> > > GetStudents()
        {
            var students = await context.Students.ToListAsync();

            var studentsData = new List <StudentReadDTO>();

            foreach (var student in students)
            {
                StudentReadDTO studentData = MapStudentToDTO(student);

                studentsData.Add(studentData);
            }

            return(studentsData);
        }
Exemple #3
0
        public async Task <ActionResult <IEnumerable <StudentReadDTO> > > SearchStudents(string query)
        {
            var students = await context.Students
                           .Where(s => (s.FirstName + " " + s.LastName).Contains(query))
                           .ToListAsync();

            var studentsData = new List <StudentReadDTO>();

            foreach (var student in students)
            {
                StudentReadDTO studentData = MapStudentToDTO(student);

                studentsData.Add(studentData);
            }

            return(studentsData);
        }
Exemple #4
0
        private StudentReadDTO MapStudentToDTO(Student student)
        {
            StudentReadDTO studentData = new StudentReadDTO
            {
                Id           = student.Id,
                FirstName    = student.FirstName,
                LastName     = student.LastName,
                Grade        = student.Grade,
                StudentId    = student.StudentId,
                Gender       = student.Gender,
                BirthDate    = student.BirthDate,
                PhotoImgPath = student.PhotoImgPath
            };

            var matchingCourses = context.Enrollments
                                  .Where(e => e.StudentId == student.Id)
                                  .Select(e => new CourseBasicDetailDTO
            {
                CourseId     = e.Course.CourseId,
                Title        = e.Course.Title,
                StudentGrade = "N/A",
                Subject      = e.Course.Subject.ToString(),
                Teacher      = new TeacherBasicDetailDTO
                {
                    Id        = e.Course.Teacher.Id,
                    FirstName = e.Course.Teacher.FirstName,
                    LastName  = e.Course.Teacher.LastName,
                    Gender    = e.Course.Teacher.Gender,
                    Salary    = e.Course.Teacher.Salary
                }
            })
                                  .ToList();

            var matchingEmails = context.Emails
                                 .Where(e => e.StudentId == student.Id)
                                 .Select(e => new EmailBasicDetailDTO
            {
                EmailAddress  = e.EmailAddress,
                IsSchoolEmail = e.IsSchoolEmail,
                Owner         = e.Owner
            })
                                 .ToList();

            //var enumType = typeof(PhoneNumberOwner); // alternative way of getting name
            var matchingPhoneNums = context.PhoneNumbers
                                    .Where(p => p.StudentId == student.Id)
                                    .Select(p => new PhoneNumBasicDetailDTO
            {
                Number      = p.Number,
                Owner       = p.Owner,
                IsEmergency = p.IsEmergency,
                IsMobile    = p.IsMobile
            })
                                    .ToList();

            var matchingAddresses = context.Addresses
                                    .Where(a => a.StudentId == student.Id)
                                    .Select(a => new AddressBasicDetailDTO
            {
                StreetAddress = a.StreetAddress,
                Suburb        = a.Suburb,
                City          = a.City,
                State         = a.State,
                Postcode      = a.Postcode,
                IsPrimary     = a.IsPrimary
            })
                                    .ToList();

            studentData.CoursesEnrolledIn = matchingCourses;
            studentData.Emails            = matchingEmails;
            studentData.PhoneNumbers      = matchingPhoneNums;
            studentData.Addresses         = matchingAddresses;
            return(studentData);
        }