Exemple #1
0
        public static Course AskForCourseById()
        {
            var    courseStore = new CourseStore();
            Course course;

            bool loop = true;

            do
            {
                Console.Clear();
                Console.WriteLine("Tryck enter för att avbryta");
                string input = UserInput.GetInput <string>("Ange kurs-id:");

                if (input == string.Empty)
                {
                    return(null);
                }

                course = courseStore.FindById(input);
                if (course == null)
                {
                    Console.WriteLine("Kurs med det id:t existerar inte");
                    UserInput.WaitForContinue();
                }
                else
                {
                    loop = false;
                }
            } while (loop);

            return(course);
        }
Exemple #2
0
        public static void ShowTeacherCourses(User teacher)
        {
            CourseStore   courseStore = new CourseStore();
            List <Course> courses     = courseStore.All().ForTeacher(teacher).ToList();

            ListCourses(courses);
        }
Exemple #3
0
        private static void ListAllCourses()
        {
            CourseStore   courseStore = new CourseStore();
            List <Course> courseList  = courseStore.All().ToList();

            Console.Clear();
            Console.WriteLine("Lista över alla kurser");
            Console.WriteLine();
            ListCourses(courseList);
        }
Exemple #4
0
        private static void ChangeTeacherForCourses()
        {
            UserStore   userStore   = new UserStore();
            CourseStore courseStore = new CourseStore();

            Console.Clear();
            Console.WriteLine("Tryck enter för att avbryta");
            string courseId = UserInput.GetInput <string>("Kurs-id:");

            if (courseId == string.Empty)
            {
                return;
            }

            Course course = courseStore.FindById(courseId);

            if (course == null)
            {
                Console.WriteLine("Kursen finns inte");
                UserInput.WaitForContinue();
                return;
            }

            User currentTeacher = userStore.FindById(course.CourseTeacher);

            if (currentTeacher == null)
            {
                Console.WriteLine("Kursen saknar lärare");
            }
            else
            {
                Console.WriteLine($"Kurslärare: {currentTeacher.FullName()} ({currentTeacher.UserName})");
            }

            string newTeacherId = UserInput.GetInput <string>("ID för ny lärare:");
            User   newTeacher   = userStore.FindById(newTeacherId);

            if (newTeacher == null)
            {
                Console.WriteLine("Användaren finns inte");
            }
            else if (newTeacher.UserLevel != UserLevel.Teacher)
            {
                Console.WriteLine("Användaren är inte en lärare");
            }
            else
            {
                course.CourseTeacher = newTeacher.UserName;
                courseStore.Save();
                Console.WriteLine("Kursens lärare uppdaterad");
            }

            UserInput.WaitForContinue();
        }
        public bool AddCourse(Course course, CourseStore courseStore)
        {
            bool courseExists = HasCourse(course);

            if (courseExists) { return false; }

            List<string> courseList = GetCourseList();
            courseList.Add(course.CourseId);
            CourseString = string.Join(",", courseList);
            return true;
        }
Exemple #6
0
        private static void TeacherStaffingCurrentCourses()
        {
            var           courseStore    = new CourseStore();
            List <Course> currentCourses = courseStore.GetCurrentCourses().ToList();

            Console.Clear();
            Console.WriteLine("Lista över pågående kurser");
            Console.WriteLine();

            ListCourses(currentCourses);
        }
Exemple #7
0
        private static void TeacherStaffingFutureCourses()
        {
            var           courseStore   = new CourseStore();
            List <Course> futureCourses = courseStore.GetFutureCourses().ToList();

            Console.Clear();
            Console.WriteLine("Lista över framtida kurser");
            Console.WriteLine();

            ListCourses(futureCourses);
        }
Exemple #8
0
        private static void TeacherStaffingUnmannedCourses()
        {
            var           courseStore     = new CourseStore();
            List <Course> unmannedCourses = courseStore.GetUnmannedCourses().ToList();

            Console.Clear();
            Console.WriteLine("Lista över obemannade kurser");
            Console.WriteLine();

            ListCourses(unmannedCourses);
        }
Exemple #9
0
        private static void TeacherStaffingArrangedCourses()
        {
            var           courseStore     = new CourseStore();
            List <Course> unmannedCourses = courseStore.GetAllAgreedCourses().ToList();

            Console.Clear();
            Console.WriteLine("Lista över avtalade kurser");
            Console.WriteLine();

            ListCourses(unmannedCourses);
        }
Exemple #10
0
        private static void TeacherStaffingFinishedCourses()
        {
            var           courseStore     = new CourseStore();
            List <Course> finishedCourses = courseStore.GetFinishedCourses().ToList();

            Console.Clear();
            Console.WriteLine("Lista över avslutade kurser");
            Console.WriteLine();

            ListCourses(finishedCourses);
        }
Exemple #11
0
        private static void ListCourses(IEnumerable <string> courseList)
        {
            var courseStore = new CourseStore();
            var courses     = new List <Course>();

            foreach (string courseId in courseList)
            {
                Course course = courseStore.FindById(courseId);
                courses.Add(course);
            }

            ListCourses(courses);
        }
        private static IEnumerable <Course> GetCourses(User user, CourseStore courseStore)
        {
            var courses = new List <Course>();

            if (user.HasLevel(UserLevel.Teacher))
            {
                courses = courseStore.FindByTeacherId(user.UserName).ToList();
            }
            else if (user.HasLevel(UserLevel.EducationSupervisor))
            {
                courses = courseStore.All().ToList();
            }

            return(courses);
        }
Exemple #13
0
        public CourseStoreTest()
        {
            var fake = new Faker();

            _courseDto = new CourseDto
            {
                Name           = fake.Random.Words(),
                Description    = fake.Lorem.Paragraph(),
                Workload       = fake.Random.Double(50, 1000),
                TargetAudience = "Student",
                Price          = fake.Random.Double(1000, 2000)
            };

            _courseRepositoryMock = new Mock <ICourseRepository>();
            _courseStore          = new CourseStore(_courseRepositoryMock.Object);
        }
Exemple #14
0
        public void Initialize()
        {
            _testClass = new EducationClass()
            {
                ClassId               = "testclass",
                Description           = "The Joy of Painting with Bob Ross",
                EducationSupervisorId = "bobross"
            };

            var studentList = new List <string>
            {
                "adam",
                "bertil",
                "caesar",
                "david",
                "erik",
                "johndoe"
            };

            _testClass.SetStudentList(studentList);

            _testCourse = new Course
            {
                CourseId      = "oop1",
                CourseName    = "Objektorienterad Programmering 1",
                CourseTeacher = "pontus",
                StartDate     = DateTime.Today,
                EndDate       = DateTime.Today
            };

            _testUser = new User
            {
                UserName = "******"
            };

            _testAddUser = new User
            {
                UserName = "******"
            };

            var courseList = new List <Course>();

            courseList.Add(_testCourse);
            _courseStore = new CourseStore(courseList);
        }
Exemple #15
0
        public void Initialize()
        {
            List <Course> courseList = new List <Course>();

            courseList.Add(new Course
            {
                CourseId      = "oop1",
                CourseName    = "Pågående kurs",
                CourseTeacher = "pontus",
                StartDate     = DateTime.Today.Subtract(new TimeSpan(7)),
                EndDate       = DateTime.Today.AddDays(7)
            });

            courseList.Add(new Course
            {
                CourseId      = "oop2",
                CourseName    = "Avslutad kurs",
                CourseTeacher = "pontus",
                StartDate     = DateTime.Parse("2016-01-01"),
                EndDate       = DateTime.Parse("2016-01-30")
            });

            courseList.Add(new Course
            {
                CourseId      = "oop3",
                CourseName    = "Framtida bemannad kurs",
                CourseTeacher = "pontus",
                StartDate     = DateTime.Today.AddDays(7),
                EndDate       = DateTime.Today.AddDays(30)
            });

            courseList.Add(new Course
            {
                CourseId      = "oop4",
                CourseName    = "Framtida obemannad kurs",
                CourseTeacher = string.Empty,
                StartDate     = DateTime.Today.AddDays(7),
                EndDate       = DateTime.Today.AddDays(30)
            });


            testCourseStore = new CourseStore(courseList);
        }
Exemple #16
0
        public static void ShowStudentsForCourse(User user)
        {
            bool isTeacher = user.HasLevel(UserLevel.Teacher);

            do
            {
                CourseStore         courseStore = new CourseStore();
                EducationClassStore classStore  = new EducationClassStore();

                Console.Clear();
                Console.WriteLine("Visa klasslista för kurs");
                Console.WriteLine();

                Console.WriteLine("Tryck enter för att avbryta.");
                string courseName = UserInput.GetInput <string>("Ange kurs-id:");

                if (courseName == string.Empty)
                {
                    break;
                }

                Course course = courseStore.FindById(courseName);

                if (course == null)
                {
                    Console.WriteLine("Finns ingen kurs med det namnet");
                    Console.WriteLine();
                }
                else if (isTeacher && course.CourseTeacher != user.UserName)
                {
                    Console.WriteLine("Du är ej lärare för den kursen.");
                    Console.WriteLine();
                }
                else
                {
                    EducationClass klass        = classStore.FindByCourseId(course.CourseId);
                    List <string>  studentNames = klass.GetStudentList();
                    UserManagerPresenter.PrintStudentList(studentNames);
                }
            } while (true);
        }
Exemple #17
0
        private static void DeleteCourse()
        {
            CourseStore courseStore = new CourseStore();
            GradeStore  gradeStore  = new GradeStore();


            Console.Clear();
            Console.WriteLine("Radera kurs");
            Console.WriteLine();

            string courseId     = UserInput.GetInput <string>("Kurs-id:");
            bool   courseExists = courseStore.FindById(courseId) != null;

            if (!courseExists)
            {
                Console.WriteLine("Kursen finns inte");
                return;
            }

            Course        courseToRemove = courseStore.FindById(courseId);
            List <Course> courseList     = courseStore.All().ToList();
            List <Grade>  grades         = gradeStore.FindByCourseId(courseToRemove.CourseId).ToList();

            bool confirm = UserInput.AskConfirmation($"Vill du radera {courseToRemove.CourseName}?");

            if (confirm && grades.Count == 0)
            {
                courseList.Remove(courseToRemove);
                courseStore = new CourseStore(courseList);
                courseStore.Save();

                Console.WriteLine("Kursen raderad");
            }
            else
            {
                Console.WriteLine("Kursen har betygsatta studenter");
                UserInput.WaitForContinue();
            }
        }
        private static void PrintGrades(IEnumerable <Grade> grades)
        {
            var courseStore = new CourseStore();

            Console.Clear();
            Console.WriteLine(
                "Kurs-id".PadRight(10) +
                "Kursnamn".PadRight(40) +
                "Betyg".PadRight(10)
                );
            Console.WriteLine(new string('-', Console.WindowWidth));

            foreach (Grade grade in grades)
            {
                Course course = courseStore.FindById(grade.CourseId);
                Console.WriteLine(
                    course.CourseId.PadRight(10) +
                    course.CourseName.PadRight(40) +
                    grade.Result);
            }

            UserInput.WaitForContinue();
        }
 public bool AddCourse(string courseId, CourseStore courseStore)
 {
     Course newCourse = courseStore.FindById(courseId);
     bool result = AddCourse(newCourse, courseStore);
     return result;
 }
        public static void GradeStudentGoal(User grader)
        {
            var courseStore = new CourseStore();
            var gradeStore  = new GradeStore();
            var goalStore   = new GoalStore();

            List <Course> courses = GetCourses(grader, courseStore).ToList();


            Course course = CoursePresenter.AskForCourseById();

            if (course == null)
            {
                return;
            }
            if (grader.HasLevel(UserLevel.Teacher) && course.CourseTeacher != grader.UserName)
            {
                Console.WriteLine("Du är ej lärare för den kursen");
                UserInput.WaitForContinue();
                return;
            }

            User           student = UserManagerPresenter.SearchForUser(UserLevel.Student);
            EducationClass klass   = student.GetClass();

            if (klass == null)
            {
                Console.WriteLine("Användaren är inte en student");
                UserInput.WaitForContinue();
                return;
            }
            if (!klass.HasCourse(course.CourseId))
            {
                Console.WriteLine("Klassen läser ej den kursen");
                UserInput.WaitForContinue();
                return;
            }

            List <Goal> goals = goalStore.FindByCourseId(course.CourseId).ToList();

            foreach (Goal g in goals)
            {
                Console.WriteLine($"  {g.GoalId}: {g.Description.Truncate(95)}");
            }

            Console.WriteLine();
            string goalToGrade = UserInput.GetInput <string>("Välj mål att betygsätta:");

            Goal goal = goals.SingleOrDefault(g => g.GoalId == goalToGrade);

            if (goal == null)
            {
                Console.WriteLine($"Finns inget mål med id {goalToGrade}");
                UserInput.WaitForContinue();
                return;
            }

            GradeLevel gradeLevel = AskForGrade();

            var grade = new Grade
            {
                StudentId  = student.UserName,
                CourseId   = course.CourseId,
                CourseGoal = goal.GoalId,
                Result     = gradeLevel
            };

            Console.WriteLine();
            Console.WriteLine($"Student: {student.FullName()}");
            Console.WriteLine($"Kursmål: {goal.Description.Truncate(95)}");
            Console.WriteLine($"Betyg:   {grade.Result}");

            bool confirm = UserInput.AskConfirmation("Spara betyg?");

            if (confirm)
            {
                Grade existingGrade = gradeStore.FindById(grade.GradeId);
                if (existingGrade == null)
                {
                    gradeStore.AddItem(grade);
                    gradeStore.Save();
                }
                else
                {
                    gradeStore.GradeStudent(student, grade);
                    gradeStore.Save();
                }
            }

            Console.WriteLine();
            UserInput.WaitForContinue();
        }
Exemple #21
0
        public Course Create(IDataStore <Course> dataStore, Course existingCourse = null)
        {
            CourseStore courseStore = new CourseStore();
            UserStore   userStore   = new UserStore();
            Course      newCourse   = new Course();

            string courseId;
            bool   courseExists;

            do
            {
                Console.Clear();
                courseId     = UserInput.GetInput <string>("Kurs-id:");
                courseExists = courseStore.FindById(courseId) != null;
                if (courseExists)
                {
                    Console.WriteLine("Kurs-id redan använt");
                    UserInput.WaitForContinue();
                }
                else
                {
                    string courseName = UserInput.GetInput <string>("Kursbeskrivning:");
                    Console.WriteLine("Skriv datum enligt YYYY-MM-DD");
                    DateTime courseStartDate = UserInput.GetDate("Startdatum:");
                    DateTime courseEndDate   = UserInput.GetDate("Slutdatum:");

                    int coursePoints = UserInput.GetInput <int>("YH-poäng:");

                    string courseTeacher = string.Empty;
                    bool   loop          = true;
                    do
                    {
                        Console.WriteLine("Lämna fältet tomt för att skapa kurs utan lärare");
                        string teacherName = UserInput.GetInput <string>("Lärare:");
                        User   teacher     = userStore.FindById(teacherName);

                        if (teacherName == string.Empty)
                        {
                            courseTeacher = string.Empty;
                            break;
                        }

                        else if (teacher == null)
                        {
                            Console.WriteLine("Användaren existerar inte");
                        }
                        else if (!teacher.HasLevel(UserLevel.Teacher))
                        {
                            Console.WriteLine("Användaren är inte en lärare");
                        }
                        else
                        {
                            courseTeacher = teacher.UserName;
                            break;
                        }
                    } while (loop);

                    newCourse = new Course
                    {
                        CourseId      = courseId,
                        CourseName    = courseName,
                        StartDate     = courseStartDate,
                        EndDate       = courseEndDate,
                        CourseTeacher = courseTeacher,
                        CoursePoints  = coursePoints
                    };

                    Course course = courseStore.AddItem(newCourse);
                    courseStore.Save();
                    Console.WriteLine("Kursen skapad");
                    UserInput.WaitForContinue();
                    return(course);
                }

                return(newCourse);
            } while (courseExists);
        }
Exemple #22
0
        private static void EditCourse()
        {
            CourseStore courseStore = new CourseStore();
            UserStore   userStore   = new UserStore();

            Console.Clear();
            Console.WriteLine("Redigera kurs");
            Console.WriteLine();
            string courseId       = UserInput.GetInput <string>("Kurs-id:");
            Course existingCourse = courseStore.FindById(courseId);

            if (existingCourse == null)
            {
                Console.WriteLine("Kursen finns inte");
                return;
            }

            Course courseToEdit = courseStore.FindById(courseId);

            Console.WriteLine("Tryck enter för att behålla gamla värdet");
            string newCourseId      = UserInput.GetInput <string>("Nytt kurs-id:");
            string newCourseName    = UserInput.GetInput <string>("Nytt kursnamn:");
            string newCourseTeacher = UserInput.GetInput <string>("Ny lärare:");

            Console.WriteLine("TODO: Nytt datum måste anges. YYYY-MM-DD");
            DateTime newCourseStartDate = UserInput.GetDate("Nytt startdatum:");
            DateTime newCourseEndDate   = UserInput.GetDate("Nytt slutdatum:");

            if (newCourseId == string.Empty)
            {
                newCourseId = courseToEdit.CourseId;
            }
            if (newCourseName == string.Empty)
            {
                newCourseName = courseToEdit.CourseName;
            }
            if (newCourseTeacher == string.Empty)
            {
                newCourseTeacher = courseToEdit.CourseTeacher;
            }

            Course newCourse = new Course
            {
                CourseId      = newCourseId,
                CourseName    = newCourseName,
                CourseTeacher = newCourseTeacher,
                StartDate     = newCourseStartDate,
                EndDate       = newCourseEndDate
            };

            Console.WriteLine("Ändra från:");
            PrintCourseInfo(courseToEdit, userStore);
            Console.WriteLine("Ändras till:");
            PrintCourseInfo(newCourse, userStore);

            Console.WriteLine();
            bool confirm = UserInput.AskConfirmation("Vill du spara ändringarna?");

            if (confirm)
            {
                courseStore.Remove(existingCourse.CourseId);
                courseStore.AddItem(newCourse);
                courseStore.Save();
                Console.WriteLine("Ändringar sparade.");
            }
        }
 public CourseController(CourseStore store)
 {
     _store = store;
 }
        public static void GradeStudentInCourse(User grader)
        {
            var userStore           = new UserStore();
            var educationClassStore = new EducationClassStore();
            var courseStore         = new CourseStore();
            var gradeStore          = new GradeStore();

            List <string> courseList;
            Course        course;
            User          student;

            Console.Clear();
            Console.WriteLine("Betygsätt student");
            Console.WriteLine();

            List <Course> courses = GetCourses(grader, courseStore).ToList();

            do
            {
                Console.WriteLine("Tryck enter för att avbryta");
                string studentName = UserInput.GetInput <string>("Ange student-id:");

                if (studentName == string.Empty)
                {
                    return;
                }

                student = userStore.FindById(studentName);

                if (student == null)
                {
                    Console.WriteLine("Finns ingen student med det id:t");
                }
                else
                {
                    EducationClass studentClass =
                        educationClassStore.FindByStudentId(student.UserName);
                    courseList = studentClass.GetCourseList();
                    break;
                }
            } while (true);

            do
            {
                Console.WriteLine("Tryck enter för att avbryta");
                string courseName = UserInput.GetInput <string>("Ange kurs-id:");
                if (courseName == string.Empty)
                {
                    return;
                }
                if (courses.Exists(c => c.CourseId == courseName))
                {
                    if (courseList.Contains(courseName))
                    {
                        course = courseStore.FindById(courseName);
                        break;
                    }

                    Console.WriteLine("Studentens klass läser inte kursen");
                    UserInput.WaitForContinue();
                }
                else
                {
                    Console.WriteLine("Kursen finns inte eller du är inte lärare för den");
                    UserInput.WaitForContinue();
                }
            } while (true);

            GradeLevel gradeLevel = AskForGrade();

            Console.WriteLine($"Student: {student.FullName()} ({student.UserName})");
            Console.WriteLine($"Kurs: {course.CourseName} ({course.CourseId})");
            Console.WriteLine($"Betyg: {gradeLevel}");
            bool confirm = UserInput.AskConfirmation("Betygsätt student?");



            if (confirm)
            {
                var grade = new Grade
                {
                    CourseId  = course.CourseId,
                    StudentId = student.UserName,
                    Result    = gradeLevel
                };

                gradeStore.GradeStudent(student, grade);
                gradeStore.Save();
            }
        }
Exemple #25
0
 public CoursesController(CourseStore courseStore)
 {
     this.courseStore = courseStore;
 }
Exemple #26
0
        public static void CourseManagementMenu(User user)
        {
            Console.Clear();

            Console.WriteLine("Hantera kurser");
            Console.WriteLine();
            Console.WriteLine("0. Tillbaka till föregående meny");
            Console.WriteLine("1. Skapa kurs");
            Console.WriteLine("2. Ta bort kurs");
            Console.WriteLine("3. Ändra lärare för en kurs");
            Console.WriteLine("4. Ändra kurs");
            Console.WriteLine("5. Kurslistor");
            Console.WriteLine("6. Visa klasslista för en kurs");
            Console.WriteLine("7. Visa alla betyg för en kurs");
            Console.WriteLine("8. Öppna kursplan");
            Console.WriteLine("9. Kursmål");

            Console.WriteLine();
            Console.Write("Ditt val: ");
            string menuChoice = UserInput.GetInput <string>();

            switch (menuChoice)
            {
            case "0":
                return;

            case "1":
                var creator     = new CourseCreator();
                var courseStore = new CourseStore();
                creator.Create(courseStore);
                break;

            case "2":
                CoursePresenter.DeleteCourse();
                break;

            case "3":
                ChangeTeacherForCourses();
                break;

            case "4":
                CoursePresenter.EditCourse();
                break;

            case "5":
                CourseSubMenuCourseLists();
                break;

            case "6":
                ShowStudentsForCourse(user);
                break;

            case "7":
                ShowGradesForCourse();
                break;

            case "8":
                ShowCoursePlan(user);
                break;

            case "9":
                CourseSubMenuGoals();
                break;
            }
        }
 public DocumentController()
 {
     courseStore = new CourseStore();
 }
Exemple #28
0
 public CoursesController(CourseStore courseStore)
 {
     _store = courseStore;
 }
 public DocumentsController()
 {
     _store = new CourseStore();
 }
Exemple #30
0
 public DocumentsController(CourseStore store)
 {
     _store = store;
 }