Example #1
0
        public static void StudentsWithTHeirHomeworks()
        {
            using (var context = new StudentSystemContext())
            {
                var students = context.Students
                    .Select(s => new
                    {
                        s.Name,
                        Homeworks = s.Homeworks.Select(h => new { h.Content, h.ContentType})
                    });

                if (!students.Any())
                {
                    Console.WriteLine("No students");
                }
                else
                {
                    foreach (var student in students)
                    {
                        Console.WriteLine("Student: {0}", student.Name);
                        foreach (var homework in student.Homeworks)
                        {
                            Console.WriteLine("Homework content: {0}; Type: {1}", homework.Content, homework.ContentType);
                        }
                        Console.WriteLine(new string('-', 40));
                    }
                }
            }
        }
Example #2
0
        public static void CoursesWithTheirResources()
        {
            using (var context = new StudentSystemContext())
            {
                var courses = context.Courses
                    .OrderBy(s => s.StartDate)
                    .ThenByDescending(s => s.EndDate)
                    .Select(s => new 
                    { 
                        s.Name,
                        s.Description,
                        s.Resources
                    });

                if (!courses.Any())
                {
                    Console.WriteLine("No courses");
                }
                else
                {
                    foreach (var course in courses)
                    {
                        Console.WriteLine("Course: {0}, Description: {1}", course.Name, course.Description);
                        foreach (var resource in course.Resources)
                        {
                            Console.WriteLine("Resource name: {0}; Type: {1}; Url: {2}",
                                resource.Name,
                                resource.ResourceType,
                                resource.Url);
                        }

                        Console.WriteLine(new string('-', 40));
                    }
                }                
            }
        }
Example #3
0
        public static void CoursesWithResourcesGreateThen(int minResources)
        {
            using (var context = new StudentSystemContext())
            {
                var courses = context.Courses
                    .Where(c => c.Resources.Count > minResources)
                    .OrderByDescending(c => c.Resources.Count)
                    .ThenByDescending(c => c.StartDate)
                    .Select(c => new
                    {
                        c.Name,
                        ResourcesCount = c.Resources.Count
                    });

                if (!courses.Any())
                {
                    Console.WriteLine("No courses");
                }
                else
                {
                    foreach (var course in courses)
                    {
                        Console.WriteLine("Course: {0} - {1} resources", course.Name, course.ResourcesCount);
                    }
                }
            }
        }
Example #4
0
        public static void StudentsStaticticOfCourses()
        {
            using (var context = new StudentSystemContext())
            {
                var students = context.Students
                    .OrderByDescending(s => s.Courses.Sum(c => c.Price))
                    .ThenByDescending(s => s.Courses.Count)
                    .ThenBy(s => s.Name)
                    .Select(s => new
                    {
                        s.Name,
                        CoursesCount = s.Courses.Count,
                        TotalPrice = s.Courses.Sum(c => c.Price),
                        AveragePrice = s.Courses.Average(c => c.Price)
                    });

                foreach (var student in students)
                {
                    Console.WriteLine("Student: {0}, Total Courses: {1}, Total Price: {2:N2}, Average Price: {3:N2}",
                        student.Name,
                        student.CoursesCount,
                        student.TotalPrice,
                        student.AveragePrice);
                }
            }
        }
Example #5
0
        public static void CoursesActiveOnADate(DateTime date)
        {
            using (var context = new StudentSystemContext())
            {
                var courses = context.Courses
                    .Where(c => DbFunctions.TruncateTime(c.StartDate) <= date && DbFunctions.TruncateTime(c.EndDate) >= date)
                    .OrderByDescending(c => c.Students.Count)
                    .ThenByDescending(c => DbFunctions.DiffDays(c.StartDate, c.EndDate))                    
                    .Select(c => new 
                    {
                        c.Name,
                        c.StartDate,
                        c.EndDate,
                        Duration = DbFunctions.DiffDays(c.StartDate, c.EndDate),
                        StudentsCount = c.Students.Count
                    });

                foreach (var course in courses)
                {
                    Console.WriteLine("Course: {0}; Active: {1} - {2}; Duration: {3} days", 
                        course.Name, 
                        course.StartDate.ToString("dd-MM-yyyy"),
                        course.EndDate.Date.ToString("dd-MM-yyyy"),
                        course.Duration);
                }
            }
        }