Ejemplo n.º 1
0
 public ICollection<Course> Get()
 {
     var db = new StudentSystemDbContext();
     var coursesRepo = new GenericRepository<Course>(db);
     List<Course> courses = coursesRepo.All().ToList();
     return courses;
 }
Ejemplo n.º 2
0
        private static void PrintCalculationForEachStudent(StudentSystemDbContext context)
        {
            var students = context
                           .Students
                           .Where(x => x.Courses.Any())
                           .Select(x => new
            {
                StudentName           = x.Name,
                EnrolledCourses       = x.Courses.Count,
                TotalSumPaid          = x.Courses.Sum(c => c.Course.Price),
                AveragePriceForCourse = x.Courses.Average(c => c.Course.Price)
            })
                           .OrderByDescending(x => x.TotalSumPaid)
                           .ThenByDescending(x => x.EnrolledCourses)
                           .ThenBy(x => x.StudentName)
                           .ToArray();

            foreach (var student in students)
            {
                if (student.EnrolledCourses != 0)
                {
                    Console.WriteLine($"{student.StudentName}");
                    Console.WriteLine($"    --Number of enrolled courses: {student.EnrolledCourses}");
                    Console.WriteLine($"    --Total price paid: $ {student.TotalSumPaid}");
                    Console.WriteLine($"    --Average price paid for course: $ {student.AveragePriceForCourse.ToString("f2")}");
                }
            }
        }
Ejemplo n.º 3
0
 public ICollection<Test> Get()
 {
     var db = new StudentSystemDbContext();
     var testsRepo = new GenericRepository<Test>(db);
     List<Test> tests = testsRepo.All().ToList();
     return tests;
 }
Ejemplo n.º 4
0
        protected override void Seed(StudentSystemDbContext context)
        {
            var student = new Student
            {
                Name        = "Dragan",
                ClassNumber = "65546",
                City        = "Kaspichan",
                BirthDate   = new DateTime(1996, 1, 1),
                Gender      = Gender.Male
            };

            var homework = new Homework
            {
                Content           = "Some content",
                TimeSendInMinutes = 240
            };

            var course = new Course
            {
                Name      = "Programming",
                Hours     = 100,
                Materials = "Some materials about programming course"
            };

            student.Courses.Add(course);
            student.Homeworks.Add(homework);
            course.Students.Add(student);
            course.Homeworks.Add(homework);

            context.Students.AddOrUpdate(s => s.Name, student);
        }
        public static void Main()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion <StudentSystemDbContext, Configuration>());
            var db = new StudentSystemDbContext();

            db.Database.Initialize(true);

            var student = new Student
            {
                Age           = 30,
                FirstName     = "Ivan",
                LastName      = "Goshov",
                StudentStatus = StudentStatus.Online
            };

            student.Courses.Add(new Course
            {
                Name = "Entity Framework Rocks!"
            });

            db.Students.Add(student);
            db.SaveChanges();

            var savedStudent = db.Students.First();

            Console.WriteLine(savedStudent.Id + ": " + savedStudent.FirstName + " " + savedStudent.LastName);
        }
Ejemplo n.º 6
0
        public static void Main()
        {
            using (var db = new StudentSystemDbContext())
            {
                db.Database.Migrate();

                //SeedInitialData(db);

                //SeedLicensesDb(db);

                //PrintStudentsWithHomeworks(db);

                //PrintCoursesAndResources(db);

                //PrintCoursesWithMoreThanFiveResources(db);

                //PrintCourseActiveOnADate(db);

                //PrintStudentsWithPrices(db);

                //PrintCourseWithResoucesAndLicenses(db);

                PrintStudentsWithCourcesAndResourcesAndLicenses(db);
            }
        }
        public void SaveStudentMarks(IList <TeacherStudentServiceModel> students, int courseId)
        {
            using (var data = new StudentSystemDbContext())
            {
                bool isValid = ValidateStudentsMark(students);

                if (!isValid)
                {
                    throw new InvalidOperationException(INVALID_STUDENT_MARK);
                }

                var exportData = data.StudentCourses
                                 .Where(x => x.CourseId == courseId)
                                 .ToArray();

                for (int i = 0; i < exportData.Length; i++)
                {
                    var mark = students[i].Mark;

                    if (mark != null)
                    {
                        exportData[i].Mark = Math.Round((double)mark, 2, MidpointRounding.ToEven);
                    }
                }

                data.SaveChanges();
            }
        }
        private static void Task21_PrintStudentsAndHomeworks(StudentSystemDbContext db)
        {
            var taskResult = db
                             .Students
                             .Select(s => new
            {
                s.Name,
                Homeworks = s.Homeworks.Select(h => new
                {
                    h.Content,
                    h.Type
                })
            })
                             .ToList();

            foreach (var student in taskResult)
            {
                Console.WriteLine(student.Name);

                foreach (var homework in student.Homeworks)
                {
                    Console.WriteLine($"---{homework.Content} - {homework.Type}");
                }
            }
        }
Ejemplo n.º 9
0
        public IHttpActionResult Post(TestRequestModel model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

            var db = new StudentSystemDbContext();
            var testsRepo = new GenericRepository<Test>(db);
            var coursesRepo = new GenericRepository<Course>(db);
            List<Course> allCourses = coursesRepo.All().ToList();
            var testCourse = new Course
            {
                Name = model.Course.Name,
                Description = model.Course.Description
            };

            var testToAdd = new Test
            {
                Course = testCourse
            };

            testsRepo.Add(testToAdd);
            testsRepo.SaveChanges();
            return this.Ok();
        }
Ejemplo n.º 10
0
        public IHttpActionResult Post(HomeworkRequestModel model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

            var db = new StudentSystemDbContext();
            var homeworsRepo = new GenericRepository<Homework>(db);
            var coursesRepo = new GenericRepository<Course>(db);
            var studentsRepo = new GenericRepository<Student>(db);
            Course defaultCourse = coursesRepo.All().ToList().FirstOrDefault();
            Student defaultStudent = studentsRepo.All().ToList().FirstOrDefault();
            var homeworkToAdd = new Homework
            {
                FileUrl = model.FileUrl,
                TimeSent = new DateTime(model.TimeSentTicks),
                Course = defaultCourse,
                CourseId = defaultCourse.Id,
                Student = defaultStudent,
                StudentIdentification = defaultStudent.StudentIdentification
            };

            homeworsRepo.Add(homeworkToAdd);
            homeworsRepo.SaveChanges();
            return this.Ok();
        }
Ejemplo n.º 11
0
        //02 Working with the Database
        private static void AllCoursesAndResourses(StudentSystemDbContext db)
        {
            var courses = db.Courses.Select(c => new
            {
                c.Name,
                c.Description,
                c.StartDate,
                c.EndDate,
                c.Resources
            })
                          .OrderBy(x => x.StartDate)
                          .ThenBy(c => c.EndDate)
                          .ToArray();


            foreach (var c in courses)
            {
                Console.WriteLine($"Name - {c.Name} => Descrption {c.Description}");
                Console.WriteLine("Resourses as following : ");
                foreach (var r in c.Resources)
                {
                    Console.WriteLine($"Name : {r.Name}");
                    Console.WriteLine($"ResourseType : {r.Resourse}");
                    Console.WriteLine($"Url : {r.Url}");
                }
            }
        }
Ejemplo n.º 12
0
        //02 Resource Licenses
        private static void ListStudentCoursesResoursesLicense(StudentSystemDbContext db)
        {
            var students = db.Students.Select(s => new
            {
                s.Name,
                CoursesCount = s.Courses.Count,
                Resourses    = s.Courses.Select(r => new
                {
                    ResCount   = r.Course.Resources.Count,
                    ResLicense = r.Course.Resources.Select(rs => new
                    {
                        LicenseCount = rs.Licenses.Count
                    })
                }).OrderByDescending(c => c.ResCount)
            }).OrderByDescending(c => c.CoursesCount).ThenBy(c => c.Name).ToArray();

            foreach (var s in students)
            {
                Console.WriteLine($"Name {s.Name} Courses Number {s.CoursesCount}");
                foreach (var r in s.Resourses)
                {
                    Console.WriteLine($"    Resourses Count : {r.ResCount}");

                    Console.WriteLine($"        License Count : {r.ResLicense.Sum(c => c.LicenseCount)}");
                }
            }
        }
Ejemplo n.º 13
0
 public ICollection<Homework> Get()
 {
     var db = new StudentSystemDbContext();
     var homeworksRepo = new GenericRepository<Homework>(db);
     List<Homework> homeworks = homeworksRepo.All().ToList();
     return homeworks;
 }
Ejemplo n.º 14
0
        private static void PrintStudentsWithHomeworks(StudentSystemDbContext context)
        {
            var students = context
                           .Students
                           .Select(x => new
            {
                Name      = x.Name,
                Homeworks = x.Homeworks.Select(h => new
                {
                    Content     = h.Content,
                    ContentType = h.ContentType
                })
            })
                           .OrderBy(x => x.Name)
                           .ToArray();

            foreach (var student in students)
            {
                Console.WriteLine(student.Name);

                foreach (var homework in student.Homeworks)
                {
                    Console.WriteLine($"    --Content: {homework.Content}, ContentType: {homework.ContentType}");
                }
            }
        }
Ejemplo n.º 15
0
        private static void PrintAllCoursesWithResources(StudentSystemDbContext context)
        {
            var courses = context
                          .Courses
                          .Select(x => new
            {
                Name        = x.Name,
                Description = x.Description,
                Resources   = x.Resources,
                StartDate   = x.StartDate,
                EndDate     = x.EndDate
            })
                          .OrderBy(x => x.StartDate)
                          .ThenBy(x => x.EndDate)
                          .ToArray();

            foreach (var course in courses)
            {
                Console.WriteLine($"{course.Name}");
                Console.WriteLine($"    Description: {course.Description}");
                Console.WriteLine($"    Resources:");
                foreach (var resource in course.Resources)
                {
                    Console.WriteLine($"        --{resource.Name}");
                    Console.WriteLine($"        --{resource.Url}");
                    Console.WriteLine($"        --{resource.ResourceType}");
                }
            }
        }
Ejemplo n.º 16
0
        private static void PrintCoursesActiveOnDate(StudentSystemDbContext context)
        {
            DateTime TargetDate = DateTime.Now.AddDays(2);

            var courses = context
                          .Courses
                          .Where(x => x.StartDate.Day == TargetDate.Day)
                          .Select(x => new
            {
                Name      = x.Name,
                StartDate = x.StartDate,
                EndDate   = x.EndDate,

                EnrollStudents = x.Students.Count,
                Duration       = (int)(x.EndDate.Subtract(x.StartDate).TotalDays)
            })
                          .OrderByDescending(x => x.EnrollStudents)
                          .ThenByDescending(x => x.Duration)
                          .ToArray();

            foreach (var course in courses)
            {
                Console.WriteLine($"{course.Name}");
                Console.WriteLine($"    --StartDate: {course.StartDate}");
                Console.WriteLine($"    --EndDate: {course.EndDate}");
                Console.WriteLine($"    --Duration: {course.Duration} days");
                Console.WriteLine($"    --Enrolled students: {course.EnrollStudents}");
            }
        }
Ejemplo n.º 17
0
        //01 Resource Licenses
        private static void ListCoursesAndResourses(StudentSystemDbContext db)
        {
            var courses = db.Courses.Select(c => new
            {
                c.Name,
                ResourcessInfo = c.Resources.Select(e => new
                {
                    e.Name,
                    LicenseNames = e.Licenses.Select(l => new
                    {
                        l.Name
                    }),
                    LicenseCount = e.Licenses.Count
                }).OrderByDescending(s => s.LicenseCount).ThenBy(s => s.Name),
                ResoursesCount = c.Resources.Count
            }).OrderByDescending(c => c.ResoursesCount).ThenBy(c => c.Name).ToArray();

            foreach (var c in courses)
            {
                Console.WriteLine($"Course Name {c.Name}");
                foreach (var r in c.ResourcessInfo)
                {
                    Console.WriteLine($"    ResourseName {r.Name} ");
                    foreach (var lm in r.LicenseNames)
                    {
                        Console.WriteLine($"        LicenseName {lm.Name}");
                    }
                }
            }
        }
Ejemplo n.º 18
0
        private static void RelateTables(StudentSystemDbContext db)
        {
            Student student  = db.Students.Find(1);
            Course  course   = db.Courses.Find(2);
            Student student1 = db.Students.Find(3);
            Course  course1  = db.Courses.Find(1);
            Student student2 = db.Students.Find(2);
            Course  course2  = db.Courses.Find(3);


            course.Students.Add(new StudentCourses()
            {
                Student = student
            });
            course1.Students.Add(new StudentCourses()
            {
                Student = student1
            });
            course2.Students.Add(new StudentCourses()
            {
                Student = student2
            });

            student.Courses.Add(new StudentCourses()
            {
                Course = course1
            });

            student2.Courses.Add(new StudentCourses()
            {
                Course = course
            });

            db.SaveChanges();
        }
Ejemplo n.º 19
0
 public ICollection<Student> Get()
 {
     var db = new StudentSystemDbContext();
     var studentsRepo = new GenericRepository<Student>(db);
     List<Student> students = studentsRepo.All().ToList();
     return students;
 }
Ejemplo n.º 20
0
        public static void Main()
        {
            var studentSystemDbContext = new StudentSystemDbContext();

            bool input = false;

            if (input)
            {
                for (int i = 0; i < 10; i++)
                {
                    Student  student  = SeedDAO.CreateStudent();
                    Course   course   = SeedDAO.CreateCourse();
                    Homework homework = SeedDAO.CreateHomework();
                    Resource resource = SeedDAO.CreateResourse();

                    studentSystemDbContext.Students.Add(student);
                    studentSystemDbContext.Courses.Add(course);
                    studentSystemDbContext.Homework.Add(homework);
                    studentSystemDbContext.Resources.Add(resource);
                }

                var result = studentSystemDbContext.SaveChanges();
                Console.WriteLine("Affected rows: {0}", result);
            }

            SeedDAO.DisplayStudents(studentSystemDbContext);
            SeedDAO.DisplayCourses(studentSystemDbContext);
        }
Ejemplo n.º 21
0
        private List <Course> SeedCourses(StudentSystemDbContext context)
        {
            Console.WriteLine("Seeding Courses...");

            var addedCourses = new List <Course>();
            var currentDate  = DateTime.Now;

            for (int i = 0; i < TotalCourses; i++)
            {
                var course = new Course
                {
                    Name        = $"Course {i + 1}",
                    Description = $"Course Details {i + 1}",
                    StartDate   = currentDate.AddDays(i),
                    EndDate     = currentDate.AddDays(random.Next(CourseDuration - 5, CourseDuration + 5)),
                    Price       = 100 + i * 10
                };

                context.Courses.Add(course);
                addedCourses.Add(course);
            }

            context.SaveChanges();

            return(addedCourses);
        }
Ejemplo n.º 22
0
        public static void Seed(StudentSystemDbContext data, int amount = 30)
        {
            var amountOfMaterials = RandomGenerator.GetNumber(2, 4);
            var materials         = data.Materials.OrderBy(x => Guid.NewGuid());
            var materialsCount    = materials.Count();

            Console.WriteLine("Importing courses...");
            for (int i = 0; i < amount; i++)
            {
                var course = new Course
                {
                    Description = RandomGenerator.GetString(10, 100),
                    Name        = RandomGenerator.GetString(5, 25),
                };

                for (int j = 0; j < amountOfMaterials; j++)
                {
                    var toSkip = RandomGenerator.GetNumber(0, materialsCount - 1);
                    course.Materials.Add(materials.Skip(toSkip).Take(1).First());
                }

                data.Courses.Add(course);
            }

            data.SaveChanges();
        }
        private static void Task24_PrintActiveCourses(StudentSystemDbContext db)
        {
            DateTime date = DateTime.Now.AddDays(30);

            var taskResult = db
                             .Courses
                             .Where(c => c.StartDate < date && date < c.EndDate)
                             .Select(c => new
            {
                c.Name,
                c.StartDate,
                c.EndDate,
                Duration = c.EndDate.Subtract(c.StartDate),
                Students = c.Students.Count
            })
                             .OrderByDescending(c => c.Students)
                             .ThenByDescending(c => c.Duration)
                             .ToList();

            foreach (var course in taskResult)
            {
                Console.WriteLine($"{course.Name}: {course.StartDate.ToShortDateString()} .. {course.EndDate.ToShortDateString()}");
                Console.WriteLine($"       Duration : {course.Duration.Days} days");
                Console.WriteLine($"       Number of Students: {course.Students}");
                Console.WriteLine(new string('-', 10));
            }
        }
Ejemplo n.º 24
0
        public IEnumerable <StudentServiceModel> GetStudents()
        {
            IEnumerable <StudentServiceModel> students;

            using (var data = new StudentSystemDbContext())
            {
                students = data.Students
                           .Select(x => new StudentServiceModel()
                {
                    FirstName   = x.User.FirstName,
                    MiddleName  = x.User.MiddleName,
                    LastName    = x.User.LastName,
                    StudentId   = x.StudentId,
                    Department  = x.User.Department.Name,
                    AverageMark = x.CoursesEnrolled.Average(m => m.Mark),
                    Town        = x.User.Town.Name
                })
                           .OrderByDescending(X => X.AverageMark)
                           .ToList();
            }

            foreach (var student in students)
            {
                if (student.AverageMark != null)
                {
                    student.AverageMark = Math.Round((double)student.AverageMark, 2);
                }
            }

            return(students);
        }
Ejemplo n.º 25
0
        private void PrintStudentWithCoursesResoursesAndLicenses(StudentSystemDbContext context)
        {
            Console.WriteLine("Students with courses, resources & licenses:");

            var studentData = context
                              .Students
                              .Where(s => s.Courses.Any())
                              .Select(s => new
            {
                s.Name,
                Courses   = s.Courses.Count,
                Resources = s.Courses
                            .Sum(sc => sc.Course.Resources.Count),
                Licenses = s.Courses
                           .Sum(sc => sc.Course.Resources
                                .Sum(r => r.Licenses.Count))
            })
                              .OrderByDescending(s => s.Courses)
                              .ThenByDescending(s => s.Resources)
                              .ThenBy(s => s.Name)
                              .ToList();

            var builder = new StringBuilder();

            foreach (var student in studentData)
            {
                builder.AppendLine($"{student.Name} - Courses {student.Courses} - Resources {student.Resources} - Licenses {student.Licenses} ");
            }

            Console.WriteLine(builder.ToString());
        }
Ejemplo n.º 26
0
        private void SeedResources(StudentSystemDbContext context, List <Course> addedCourses)
        {
            Console.WriteLine("Seeding Resources...");

            var resourceTypes = Enum.GetValues(typeof(ResourceType)).Cast <int>().ToArray();

            for (int i = 0; i < TotalCourses; i++)
            {
                var currentCourse     = addedCourses[i];
                var resourcesInCourse = random.Next(2, 20);

                for (int j = 0; j < resourcesInCourse; j++)
                {
                    context.Resources.Add(new Resource
                    {
                        Name         = $"Resource {currentCourse.Id}/{j + 1}",
                        URL          = $"www.softuni.bg/course{currentCourse.Id}/resource{j + 1}",
                        ResourceType = (ResourceType)resourceTypes[random.Next(0, resourceTypes.Length)],
                        Course       = currentCourse
                    });
                }
            }

            context.SaveChanges();
        }
Ejemplo n.º 27
0
        private void SeedStudentsToCourses(StudentSystemDbContext context, List <Course> addedCourses)
        {
            Console.WriteLine("Seeding Students to Courses...");

            var studentIds = context.Students.Select(s => s.Id).ToList();

            for (int i = 0; i < TotalCourses; i++)
            {
                var currentCourse    = addedCourses[i];
                var studentsInCourse = random.Next(10, TotalStudents);

                for (int j = 0; j < studentsInCourse; j++)
                {
                    var studentId = studentIds[random.Next(0, studentIds.Count)];

                    if (!currentCourse.Students.Any(s => s.StudentId == studentId))
                    {
                        currentCourse.Students.Add(new StudentCourse {
                            StudentId = studentId
                        });
                    }
                }
            }

            context.SaveChanges();
        }
Ejemplo n.º 28
0
        private void SeedLicenses(StudentSystemDbContext context)
        {
            Console.WriteLine("Seeding Licenses...");

            var resourceIds = context
                              .Resources
                              .Select(r => r.Id)
                              .ToList();

            for (int i = 0; i < resourceIds.Count; i++)
            {
                var totalLicenses = random.Next(1, 4);

                for (int j = 0; j < totalLicenses; j++)
                {
                    context.Licenses.Add(new License
                    {
                        Name       = $"License {resourceIds[i]}/{j + 1}",
                        ResourceId = resourceIds[i]
                    });
                }

                context.SaveChanges();
            }
        }
Ejemplo n.º 29
0
        private void SeedHomeworks(StudentSystemDbContext context, List <Course> addedCourses)
        {
            Console.WriteLine("Seeding Homeworks...");

            var contentTypes = Enum.GetValues(typeof(ContentType)).Cast <int>().ToArray();
            var currentDate  = DateTime.Now;

            for (int i = 0; i < TotalCourses; i++)
            {
                var currentCourse    = addedCourses[i];
                var studentsInCourse = currentCourse
                                       .Students
                                       .Select(s => s.StudentId)
                                       .ToList();

                foreach (var studentId in studentsInCourse)
                {
                    var totalHomeworks = random.Next(0, 5);

                    for (int j = 0; j < totalHomeworks; j++)
                    {
                        currentCourse.HomeworkSubmissions.Add(new Homework
                        {
                            StudentId      = studentId,
                            Content        = $"Homework {currentCourse.Id}/{studentId}/{j + 1}",
                            ContentType    = (ContentType)contentTypes[random.Next(0, contentTypes.Length)],
                            SubmissionDate = currentDate.AddDays(-studentId / 10)
                        });
                    }
                }
            }

            context.SaveChanges();
        }
Ejemplo n.º 30
0
        private void PrintCoursesWithResources(StudentSystemDbContext context)
        {
            Console.WriteLine("Courses with resources:");

            var coursesData = context
                              .Courses
                              .OrderBy(c => c.StartDate)
                              .ThenByDescending(c => c.EndDate)
                              .Select(c => new
            {
                c.Name,
                c.Description,
                Resources = c.Resources.Select(r => new
                {
                    r.Name,
                    r.ResourceType,
                    r.URL
                })
            })
                              .ToList();

            var builder = new StringBuilder();

            foreach (var course in coursesData)
            {
                builder.AppendLine($"{course.Name} - {course.Description}:");
                foreach (var resource in course.Resources)
                {
                    builder.AppendLine($"  {resource.Name} - {resource.ResourceType} - {resource.URL}");
                }
            }

            Console.WriteLine(builder.ToString());
        }
Ejemplo n.º 31
0
        private void PrintStudentsWithHomeworkSubmissions(StudentSystemDbContext context)
        {
            Console.WriteLine("Students with homeworks:");

            var studentsData = context
                               .Students
                               .Select(s => new
            {
                s.Name,
                Homeworks = s.Homeworks.Select(h => new
                {
                    h.Content,
                    h.ContentType
                })
            })
                               .ToList();

            var builder = new StringBuilder();

            foreach (var student in studentsData)
            {
                builder.AppendLine($"{student.Name}:");
                foreach (var homework in student.Homeworks)
                {
                    builder.AppendLine($"  {homework.Content} - {homework.ContentType}");
                }
            }

            Console.WriteLine(builder.ToString());
        }
Ejemplo n.º 32
0
        private void PrintStudentCoursesAndPrice(StudentSystemDbContext context)
        {
            Console.WriteLine("Students Course prices:");

            var studentCourses = context
                                 .Students
                                 .Where(s => s.Courses.Any())
                                 .Select(s => new
            {
                s.Name,
                Courses      = s.Courses.Count,
                TotalPrice   = s.Courses.Sum(sc => sc.Course.Price),
                AveragePrice = s.Courses.Average(sc => sc.Course.Price)
            })
                                 .OrderByDescending(s => s.TotalPrice)
                                 .ThenByDescending(s => s.Courses)
                                 .ThenBy(s => s.Name)
                                 .ToList();

            var builder = new StringBuilder();

            foreach (var student in studentCourses)
            {
                builder
                .Append($"{student.Name} - Courses {student.Courses} - ")
                .Append($"Total Price {student.TotalPrice:f2} - ")
                .AppendLine($"Average Price {student.AveragePrice:f2}");
            }

            Console.WriteLine(builder.ToString());
        }
Ejemplo n.º 33
0
        private void PrintCoursesWithMoreThan5Resources(StudentSystemDbContext context)
        {
            Console.WriteLine("Courses with more than 5 resources:");

            var coursesData = context
                              .Courses
                              .Where(c => c.Resources.Count > 5)
                              .OrderByDescending(c => c.Resources.Count)
                              .ThenByDescending(c => c.StartDate)
                              .Select(c => new
            {
                c.Name,
                Resources = c.Resources.Count
            })
                              .ToList();

            var builder = new StringBuilder();

            foreach (var course in coursesData)
            {
                builder.AppendLine($"  {course.Name} - Resources {course.Resources}");
            }

            Console.WriteLine(builder.ToString());
        }
Ejemplo n.º 34
0
        private static void PrintCourseActionOnDate(StudentSystemDbContext db)
        {
            var date = DateTime.Now.AddDays(25);

            var result = db
                         .Courses
                         .Where(c => c.Startdate <date && date> c.EndDate)
                         .Select(c => new
            {
                c.Name,
                c.Startdate,
                c.EndDate,
                Duration = c.EndDate.Subtract(c.Startdate),
                Studens  = c.Students.Count
            })
                         .OrderByDescending(c => c.Studens)
                         .ThenByDescending(c => c.Duration)
                         .ToList();

            foreach (var course in result)
            {
                Console.WriteLine($"{course.Name}- {course.Startdate.ToShortDateString()}- { course.EndDate.ToShortDateString()}");
                Console.WriteLine($"--------Duration:{course.Duration.TotalDays}");
                Console.WriteLine($"---Students: {course.Studens}");
                Console.WriteLine("---------------");
            }
        }
Ejemplo n.º 35
0
        private static void PrintCoursesAndResourses(StudentSystemDbContext db)
        {
            var result = db
                         .Courses
                         .OrderBy(c => c.Startdate)
                         .ThenBy(c => c.EndDate)
                         .Select(c => new
            {
                c.Name,
                c.Description,
                Resourse = c.Resourses.Select(r => new
                {
                    r.Name,
                    r.Url,
                    r.Type
                })
            })
                         .ToList();

            foreach (var course in result)
            {
                Console.WriteLine($"{course.Name}- {course.Description}");

                foreach (var resourse in course.Resourse)
                {
                    Console.WriteLine($"{resourse.Name}-{resourse.Type}- {resourse.Url}");
                }
            }
        }
Ejemplo n.º 36
0
        public static void Seed(StudentSystemDbContext data, int amount = 50)
        {
            var courses      = data.Courses.OrderBy(x => Guid.NewGuid());
            var coursesCount = courses.Count();

            Console.WriteLine("Importing students...");
            for (int i = 0; i < amount; i++)
            {
                var student = new Student
                {
                    Name   = RandomGenerator.GetString(2, 50),
                    Number = RandomGenerator.GetNumber(1, 50)
                };

                var coursesPerStudent = RandomGenerator.GetNumber(2, 4);

                for (int j = 0; j < coursesPerStudent; j++)
                {
                    var toSkip = RandomGenerator.GetNumber(0, coursesCount - 1);
                    student.Courses.Add(courses.Skip(toSkip).Take(1).First());
                }

                data.Students.Add(student);
            }

            data.SaveChanges();
        }
Ejemplo n.º 37
0
 public static void Main()
 {
     var db = new StudentSystemDbContext();
     db.Database.Initialize(true);
     PrintStudents(db);
     PrintCourses(db);
     PrintHomeworks(db);
 }
Ejemplo n.º 38
0
 private static void PrintStudents(StudentSystemDbContext db)
 {
     Console.WriteLine("Students: ");
     foreach (var student in db.Students.Include("Courses"))
     {
         Console.WriteLine(" - {0} -> present in {1} course(s)", student.FullName, student.Courses.Count());
     }
 }
Ejemplo n.º 39
0
 private static void PrintCourses(StudentSystemDbContext db)
 {
     Console.WriteLine("\nCourses: ");
     foreach (var course in db.Courses.Include("Homeworks"))
     {
         Console.WriteLine(" - {0} -> has {1} homework(s)", course.Name, course.Homeworks.Count());
     }
 }
Ejemplo n.º 40
0
 private static void PrintHomeworks(StudentSystemDbContext db)
 {
     Console.WriteLine("\nHomeworks: ");
     var homeworkCompleted = db.Homeworks.Where(h => h.StudentId.HasValue).FirstOrDefault();
     Console.WriteLine(
         " - {0} ({1}) -> Completed by:  {2}",
          homeworkCompleted.Content,
          homeworkCompleted.Course.Description,
          homeworkCompleted.Student.FullName);
 }
Ejemplo n.º 41
0
        static void Main(string[] args)
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<StudentSystemDbContext, Configuration>());

            var db = new StudentSystemDbContext();
            var student = new Student
            {
                FirstName = "John",
                LastName = "3volta",
                FacultyNumber = "qwerty"
            };

            System.Console.WriteLine(db.Students.ToList().Count());
            db.Students.Add(student);
            db.SaveChanges();
        }
Ejemplo n.º 42
0
        public IHttpActionResult Post(CourseRequestModel model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

            var db = new StudentSystemDbContext();
            var coursesRepo = new GenericRepository<Course>(db);
            var courseToAdd = new Course
            {
                Name = model.Name,
                Description = model.Description
            };

            coursesRepo.Add(courseToAdd);
            coursesRepo.SaveChanges();
            return this.Ok();
        }
Ejemplo n.º 43
0
        public IHttpActionResult Post(StudentRequestModel model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

            var db = new StudentSystemDbContext();
            var studentsRepo = new GenericRepository<Student>(db);
            var studentToAdd = new Student
            {
                FirstName = model.FirstName,
                LastName = model.LastName,
                Level = model.Level
            };

            studentsRepo.Add(studentToAdd);
            studentsRepo.SaveChanges();
            return this.Ok();
        }
Ejemplo n.º 44
0
        static void Main()
        {
            Database.SetInitializer(
                new MigrateDatabaseToLatestVersion<StudentSystemDbContext, Configuration>());

            using (var db = new StudentSystemDbContext())
            {
                var student = new Student
                {
                    FirstName = "Sam",
                    LastName = "Jones",
                    Number = 5203
                };

                var course = new Course
                {
                    Name = "Math",
                    Description = "Stereometrics",
                    Materials = "http://math.com"
                };

                var homework = new Homework
                {
                    Content = "Done",
                    TimeSent = new DateTime(2015, 8, 15)
                };

                db.Homeworks.Add(homework);
                student.Courses.Add(course);
                db.Students.Add(student);
                db.Courses.Add(course);
                db.SaveChanges();

                Console.WriteLine(db.Students.Count());
                Console.WriteLine(db.Courses.Count());
            }
        }
 public HomeworksController()
 {
     var dbContext = new StudentSystemDbContext();
     this.courses = new EfRepository<Course>(dbContext);
     this.homeworks = new EfRepository<Homework>(dbContext);
 }
        static void Main()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<StudentSystemDbContext, Configuration>());
            var db = new StudentSystemDbContext();

            //Add new student
            db.Students.AddOrUpdate(new Student
            {
                Name = "Nakov",
                Birthday = new DateTime(1980, 1, 1),
                RegistrationDate = new DateTime(2015, 2, 1)
            });

            // Add new resource
            var resource1 = new Resource
            {
                Name = "Nakov video",
                TypeOfResourse = TypeOfResourse.Video,
                Link = "www.youtube.com"
            };

            var resource2 = new Resource
            {
                Name = "Link",
                Link = "www.dir.bg",
                TypeOfResourse = TypeOfResourse.Other,
            };

            db.Resources.AddOrUpdate(resource1, resource2);

            // Add new courses
            var course1 = new Course
            {
                Name = "C# Intro",
                Discription = "jgds gldsldjf dgj dgf g ",
                StartDate = new DateTime(2014, 1, 1),
                EndDate = new DateTime(2014, 1, 30),
                Price = 180
            };

            var course2 = new Course
            {
                Name = "Seminar 1",
                Discription = "jgds gldsldjf dgj dgf g ",
                StartDate = new DateTime(2015, 2, 1),
                EndDate = new DateTime(2015, 2, 25),
                Price = 0
            };

            course1.Resources.Add(resource1);
            course2.Resources.Add(resource2);
            db.Courses.AddOrUpdate(course1, course2);

            db.SaveChanges();

            // Lists all students and their homework submissions
            Console.WriteLine(" * Lists all students and their homework submissions");

            var students = db.Students
                .Include(s => s.Homeworks)
                .Select(s => new
                {
                    s.Name,
                    s.Homeworks
                });

            foreach (var student in students)
            {
                Console.WriteLine(student.Name);
                var homeworks = student.Homeworks;
                if (homeworks.Count == 0)
                {
                    Console.WriteLine("    no homeworks");
                }
                else
                {
                    foreach (var homework in homeworks)
                    {
                        Console.WriteLine("    - " + homework.DateAndTime);
                    }
                }
            }

            Console.WriteLine();

            // List all course and their resources
            Console.WriteLine(" * List all course and their resources");

            var courses = db.Courses
                .Include(c => c.Resources)
                .Select(c => new
                {
                    c.Name,
                    c.Resources
                });

            foreach (var course in courses)
            {
                Console.WriteLine(course.Name);
                var resourses = course.Resources;
                if (resourses.Count == 0)
                {
                    Console.WriteLine("    no resourses");
                }
                else
                {
                    foreach (var resourse in resourses)
                    {
                        Console.WriteLine("    {0}; {1}",resourse.Name, resourse.Link);
                    }
                }
            }
        }
Ejemplo n.º 47
0
 public static void Main()
 {
     var db = new StudentSystemDbContext();
 }
 public StudentsController()
 {
     var dbContext = new StudentSystemDbContext();
     this.studentData = new GenericRepository<Student>(dbContext);
 }
Ejemplo n.º 49
0
        public static void Main(string[] args)
        {
            Database.SetInitializer(new StudentSystemDbInitializer());

            using (var context = new StudentSystemDbContext())
            {
                Console.WriteLine("Task 3.1: List all students and their homework submissions:");
                var students = context.Students.Include("Homeworks");
                foreach (var student in students)
                {
                    Console.WriteLine("Student: {0} ; Submitted homeworks count: {1}", student.Name, student.Homeworks.Count());
                }

                Console.WriteLine("\nTask 3.2: List all courses and their resources:");
                var courses = context.Courses.Include("Resources");
                foreach (var course in courses)
                {
                    Console.WriteLine("Course: \"{0}\" with following resources:", course.Name);
                    foreach (var resource in course.Resources)
                    {
                        Console.WriteLine("\t- \"{0}\" - [Type: {1}]", resource.Name, resource.Type);
                    }
                }

                Console.WriteLine("\nTask 3.3: Adds a new course with some resources:");
                var newCourse = new Course
                {
                    Name = "C# Programming - Beginning",
                    Description = "Learn to code in C#",
                    StartDate = DateTime.Now,
                    Price = 0.01m,
                    Resources = new List<Resource>
                    {
                        new Resource { Name = "C# Programming", Type = ResourceType.Document, Link = "search in bookstores" },
                        new Resource { Name = "Head First C#", Type = ResourceType.Document, Link = "http://it-ebooks.info/book/251/" },
                    }
                };

                context.Courses.Add(newCourse);
                context.SaveChanges();
                Console.WriteLine("Added course ID in DB is: {0}", newCourse.CourseId);
                Console.WriteLine("This new course have {0} resources", newCourse.Resources.Count());

                Console.WriteLine("\nTask 3.4: Add a new student:");
                var newStudent = new Student
                {
                    Name = "Svetlin Nakov",
                    Birthday = new DateTime(1900, 1, 1),
                    RegistrationDate = DateTime.Now
                };

                context.Students.Add(newStudent);
                context.SaveChanges();
                Console.WriteLine("Added student ID in DB is: {0}", newStudent.StudentId);

                Console.WriteLine("\nTask 3.5: Add a new resource:");
                var newResource = new Resource
                {
                    Name = "Book with pictures",
                    Type = ResourceType.Document,
                    Link = "look into kindergarden",
                    Course = context.Courses.FirstOrDefault(),
                };

                context.Resources.Add(newResource);
                context.SaveChanges();
                Console.WriteLine("Added resource ID in DB is {0} and is assigned to course \"{1}\"", newResource.ResourceId, newResource.Course.Name);
            }
        }