Exemple #1
0
        public IHttpActionResult CreateCourse(CourseCreator courseCreator)
        {
            coursesService         = new CoursesService();
            subjectsService        = new SubjectsService();
            teachersService        = new TeachersService();
            subjectToExposeService = new SubjectToExposeService();
            courseToExposeService  = new CourseToExposeService();

            if (courseCreator == null)
            {
                return(BadRequest());
            }

            bool exists = false;

            exists = coursesService.CheckIfCourseAlreadyExists(courseCreator.Title);

            if (exists)
            {
                return(BadRequest());
            }

            List <CourseSubject> courseSubjects = coursesService.CreateCourse(courseCreator);

            List <SubjectToExpose> subjectsToExpose = new List <SubjectToExpose>();

            foreach (CourseSubject courseSubject in courseSubjects)
            {
                Subject subject = new Subject();
                subject = subjectsService.Find(courseSubject.SubjectId);

                if (subject == null)
                {
                    return(BadRequest());
                }

                if (subject.ID == 0)
                {
                    return(BadRequest());
                }

                Teacher teacher = new Teacher();

                teacher = teachersService.GetTeacherNameByID(subject.TeacherId);

                if (teacher == null)
                {
                    return(BadRequest());
                }

                SubjectToExpose subjectToExpose = subjectToExposeService.TrimSubject(subject);

                subjectsToExpose.Add(subjectToExpose);
            }

            CourseToExpose course = courseToExposeService
                                    .TrimSubject(courseSubjects, courseCreator, subjectsToExpose);

            return(Created(new Uri(Request.RequestUri + "/" + course.Id), course));
        }
Exemple #2
0
        public List <CourseSubject> CreateCourse(CourseCreator courseCreator)
        {
            courseService = new CourseService();

            List <CourseSubject> courseSubjects = courseService.CreateCourse(courseCreator);

            return(courseSubjects);
        }
Exemple #3
0
        public CourseToExpose TrimSubject(List <CourseSubject> courseSubjects, CourseCreator courseCreator, List <SubjectToExpose> subjectsToExpose)
        {
            CourseToExpose courseToExpose = new CourseToExpose()
            {
                Id               = courseSubjects.ToArray()[0].CourseId,
                Title            = courseCreator.Title,
                SubjectsToExpose = subjectsToExpose
            };

            return(courseToExpose);
        }
Exemple #4
0
        public CourseToExpose TrimUpdateCourse(int id, CourseCreator courseCreator, List <SubjectToExpose> subjectsToExpose)
        {
            CourseToExpose courseToExpose = new CourseToExpose()
            {
                Id               = id,
                Title            = courseCreator.Title,
                SubjectsToExpose = subjectsToExpose
            };

            return(courseToExpose);
        }
Exemple #5
0
        private void ProcessCourseNotes(CourseCreator courseData, IEnumerable <string> courseNotesDownloadLinks)
        {
            foreach (var noteDownloadLink in courseNotesDownloadLinks)
            {
                //generate unique name for each note
                var randomNoteName = GenerateRandomPath(courseData.Id);

                //write note details to db
                AddNoteToDb(courseData, randomNoteName, noteDownloadLink);

                //download courses notes
                DownloadCourseNotes(noteDownloadLink, courseData.Name, randomNoteName);
            }
        }
Exemple #6
0
        public virtual void SetUp()
        {
            unitOfWork        = new UnitOfWork(sessionFactory);
            studentsCreator   = new StudentCreator(unitOfWork, repositoriesFactory);
            studentsProvider  = new StudentsProvider(unitOfWork, repositoriesFactory);
            studentDestructor = new StudentDestructor(unitOfWork, repositoriesFactory);
            studentImporter   = new CsvStudentsImporter(studentsCreator);

            modesCreator  = new ModesCreator(unitOfWork, repositoriesFactory);
            modesProvider = new ModesProvider(unitOfWork, repositoriesFactory);

            companyCreator    = new CompanyCreator(unitOfWork, repositoriesFactory);
            companyUpdater    = new CompanyUpdater(unitOfWork, repositoriesFactory);
            companyDestructor = new CompanyDestructor(unitOfWork, repositoriesFactory);
            companiesProvider = new CompaniesProvider(unitOfWork, repositoriesFactory);

            offerCreator    = new OfferCreator(unitOfWork, repositoriesFactory);
            offerUpdater    = new OfferUpdater(unitOfWork, repositoriesFactory);
            offerDestructor = new OfferDestructor(unitOfWork, repositoriesFactory);
            offerProvider   = new OffersProvider(unitOfWork, repositoriesFactory);

            courseCreator    = new CourseCreator(unitOfWork, repositoriesFactory);
            courseProvider   = new CoursesProvider(unitOfWork, repositoriesFactory);
            courseUpdater    = new CourseUpdater(unitOfWork, repositoriesFactory, authenticationService);
            courseDestructor = new CourseDestructor(unitOfWork, repositoriesFactory);

            departmentCreator    = new DepartmentCreator(unitOfWork, repositoriesFactory);
            departmentProvider   = new DepartmentsProvider(unitOfWork, repositoriesFactory);
            departmentDestructor = new DepartmentDestructor(unitOfWork, repositoriesFactory);
            departmentUpdater    = new DepartmentUpdater(unitOfWork, repositoriesFactory);

            employeesDestructor = new EmployeeDestructor(unitOfWork, this.repositoriesFactory, this.authenticationService);
            employeesProvider   = new EmployeesProvider(unitOfWork, repositoriesFactory);
            employeeCreator     = new EmployeeCreator(unitOfWork, this.authenticationService, this.repositoriesFactory);
            employeesUpdater    = new EmployeeUpdater(unitOfWork, this.repositoriesFactory, this.authenticationService);

            templateCreator    = new TemplateCreator(unitOfWork, repositoriesFactory);
            templateDestructor = new TemplateDestructor(unitOfWork, repositoriesFactory);
            templateProvider   = new TemplatesProvider(unitOfWork, repositoriesFactory);

            offerTypeCreator  = new OfferTypeCreator(unitOfWork, repositoriesFactory);
            offerTypeProvider = new OfferTypeProvider(unitOfWork, repositoriesFactory);

            universityDetailsCreator  = new UniversityDetailsCreator(unitOfWork, repositoriesFactory);
            universityUpdater         = new UniversityDetailsUpdater(unitOfWork, repositoriesFactory);
            universityDetailsProvider = new UniversityDetailsProvider(unitOfWork, repositoriesFactory);
        }
Exemple #7
0
        public List <CourseSubject> CreateCourse(CourseCreator courseCreator)
        {
            courseSubject = new CourseSubject();

            Course course = new Course();

            course.Title = courseCreator.Title;

            db.Courses.Add(course);
            db.SaveChanges();

            List <int>           subjectsIds    = courseCreator.SubjectIds;
            List <CourseSubject> courseSubjects = new List <CourseSubject>();

            courseSubjects = courseSubject.CreateCourseSubjectsBySubjectsIDAndCourse(course, subjectsIds);

            return(courseSubjects);
        }
        private void CheckDeveloperPlatform()
        {
            int[] aveableTypes = new int[] { 1, 2, 3, 4, 5 };

            int.TryParse(Console.ReadLine(), out int platformNum);

            if (Array.IndexOf(aveableTypes, platformNum) > -1)
            {
                developerPlatform = (DeveloperPlatform)platformNum;
                Console.Clear();
                course = CourseCreator.CreateCourse(courseType, developerPlatform);
                CheckCourseForNull(course);
            }
            else
            {
                Console.Clear();
                ChooseDeveloperPlatform();
            }
        }
Exemple #9
0
        private static void AddCourseToDb(CourseCreator courseData)
        {
            #region WRITE COURSE DATA TO DB

            using (var db = new NotifyLocalDBEntities())
            {
                var newCourse = new Models.Cours()
                {
                    courseName     = courseData.Name,
                    portalCourseId = courseData.Id,
                    userId         = Properties.Settings.Default.UserId
                };

                db.Courses.Add(newCourse);
                db.SaveChanges();
            }

            #endregion WRITE COURSE DATA TO DB
        }
Exemple #10
0
        private void AddNoteToDb(CourseCreator courseData, string noteName, string downloadLink)
        {
            using (var db = new NotifyLocalDBEntities())
            {
                #region WRITE NOTE DATA TO DB

                var newCourseNote = new Models.Note
                {
                    courseId       = courseData.Id,
                    noteCustomPath = noteName,
                    dateDownloaded = DateTime.Now,
                    portalNoteId   = Convert.ToInt32(downloadLink.Split('=')[1])
                };

                newCourseNote.noteName = _parser.GetHtmlOfTagContainingKeyword("a", newCourseNote.portalNoteId.ToString()).FirstOrDefault();

                db.Notes.Add(newCourseNote);

                try
                {
                    db.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    #region LOGGING

                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        Trace.WriteLine($"Entity of type \"{eve.Entry.Entity.GetType().Name}\" in state \"{eve.Entry.State}\" has the following validation errors:");

                        foreach (var ve in eve.ValidationErrors)
                        {
                            Trace.WriteLine($"- Property: \"{ve.PropertyName}\", Error: \"{ve.ErrorMessage}\"");
                        }
                    }

                    #endregion LOGGING
                }

                #endregion WRITE NOTE DATA TO DB
            }
        }
        private void GenerateCourses(UnitOfWork unitOfWork)
        {
            var departmentCreator = new DepartmentCreator(unitOfWork, _repositoriesFactory);
            var courseCreator     = new CourseCreator(unitOfWork, _repositoriesFactory);
            var departments       = _document.Descendants("department").ToList();

            Console.WriteLine("\nLista utworzonych kierunków:\n");
            foreach (var d in departments)
            {
                var dName     = d.Attribute("name").Value;
                var deparment = departmentCreator.Create(dName);

                var courses = d.Descendants("course").ToList();
                foreach (var c in courses)
                {
                    var cName = c.Attribute("name").Value;

                    var course = courseCreator.Create(cName, deparment);
                    Console.WriteLine("{0} {1}", course.Id, cName);
                }
            }
        }
Exemple #12
0
        public IHttpActionResult UpdateCourse(int id, CourseCreator courseCreator)
        {
            coursesService        = new CoursesService();
            courseToExposeService = new CourseToExposeService();

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

            if (courseCreator.SubjectIds.Count() > 5)
            {
                return(BadRequest());
            }


            // check if course exists; if it doesn't, send NotFound()
            Course courseToUpdate = coursesService.GetCourseByCourseId(id);

            if (courseToUpdate == null)
            {
                return(BadRequest());
            }

            // check if title changed and if so update it
            courseToUpdate = coursesService.UpdateTitle(id, courseCreator.Title);

            if (courseToUpdate == null)
            {
                return(BadRequest());
            }

            // list of subjects of course before update
            List <int> oldSubjectList = coursesService.GetCourseSubjectsIds(courseToUpdate);

            // new list of subjects
            List <int> newSubjectList = courseCreator.SubjectIds;

            // compare list of subjects
            List <int> subjectsToRemove = new List <int>();
            List <int> subjectsToAdd    = new List <int>();

            foreach (int oldSubject in oldSubjectList)
            {
                if (!newSubjectList.Contains(oldSubject))
                {
                    subjectsToRemove.Add(oldSubject);
                }
            }

            foreach (int newSubject in newSubjectList)
            {
                if (!oldSubjectList.Contains(newSubject))
                {
                    subjectsToAdd.Add(newSubject);
                }
            }

            // create courseSubjects to new subjects
            List <CourseSubject> newCourseSubjects = coursesService
                                                     .CreateCourseSubjectsByIdAndListOfSubjects(courseToUpdate.Id, subjectsToAdd);

            // remove course subjects
            coursesService.RemoveCourseSubjetcsByListOfSubjects(id, subjectsToRemove);

            // create List of subjects to expose
            List <Subject> subjectsToTrim = coursesService.GetSubjects(newSubjectList);

            List <SubjectToExpose> subjectsToExpose = coursesService.TrimSubjects(subjectsToTrim);

            // create Course to expose
            CourseToExpose courseToExpose = courseToExposeService
                                            .TrimUpdateCourse(id, courseCreator, subjectsToExpose);

            return(Ok(courseToExpose));
        }
    void Start()
    {
        if (Instance == null) {
            Instance = this;
        }

        m_seed = DataManager.LoadLastCourse ();
    }
Exemple #14
0
 public abstract void visit(CourseCreator courseCreator);
Exemple #15
0
        //Prototype, State and Visitor together
        public override void visit(CourseCreator courseCreator)
        {
            ICourse ct = courseCreator.prototype.create(preparedCourse);

            courseCreator.database.AddCourse(ct);
        }
Exemple #16
0
 public override void visit(CourseCreator courseCreator)
 {
     Console.WriteLine(this.name + ", you are not allowed to create a course");
 }
Exemple #17
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;
            }
        }
Exemple #18
0
        public void Generate()
        {
            PrepareData();

            using (var unitOfWork = new UnitOfWork(_sessionFactory))
            {
                var departmentCreator = new DepartmentCreator(unitOfWork, _repositoriesFactory);
                var courseCreator     = new CourseCreator(unitOfWork, _repositoriesFactory);
                var courseUpdater     = new CourseUpdater(unitOfWork, _repositoriesFactory, _auth);
                var employeesCreator  = new EmployeeCreator(unitOfWork, _auth, _repositoriesFactory);
                var studentCreator    = new StudentCreator(unitOfWork, _repositoriesFactory);
                var studentsImporter  = new CsvStudentsImporter(studentCreator);
                var modesProvider     = new ModesProvider(unitOfWork, _repositoriesFactory);

                var mode = modesProvider.GetModes().First();

                EmployeeCreateStatus status;
                Course rootCourse = null;

                var departments = _document.Descendants("department").ToList();

                foreach (var d in departments)
                {
                    var dName     = d.Attribute("name").Value;
                    var deparment = departmentCreator.Create(dName);

                    var courses = d.Descendants("course").ToList();
                    foreach (var c in courses)
                    {
                        var cName = c.Attribute("name").Value;
                        Console.WriteLine(cName);
                        var course = courseCreator.Create(cName, deparment);

                        if (rootCourse == null)
                        {
                            rootCourse = course;
                        }

                        var employees = c.Descendants("employee").ToList();
                        foreach (var e in employees)
                        {
                            var userName  = e.Attribute("name").Value;
                            var manager   = bool.Parse(e.Attribute("manager").Value);
                            var admin     = bool.Parse(e.Attribute("administrator").Value);
                            var moderator = bool.Parse(e.Attribute("moderator").Value);

                            var firstName = userName.Split('.')[0];
                            var lastName  = userName.Split('.')[1];
                            var mail      = string.Format("{0}@mailinator.com", userName);
                            var employee  = employeesCreator.Create(userName, firstName, lastName, "qwerty", mail, "qwerty", "qwerty", moderator, false, admin, course, out status);

                            if (manager)
                            {
                                courseUpdater.SetManager(course, employee);
                            }
                        }

                        using (var streamReader = new StreamReader("Data/studenci.txt"))
                        {
                            studentsImporter.Import(streamReader.BaseStream, course, mode);
                        }
                    }
                }

                employeesCreator.Create("root", "Jan", "Kowalski", "qwerty", "*****@*****.**", "qwerty", "qwerty", true, true, true, rootCourse, out status);

                Console.WriteLine("\n\nOferty\n\n");
                var companyCreator     = new CompanyCreator(unitOfWork, _repositoriesFactory);
                var offerTypesProvider = new OfferTypeProvider(unitOfWork, _repositoriesFactory);
                var offerCreator       = new OfferCreator(unitOfWork, _repositoriesFactory);

                var companies = _document.Descendants("company").ToList();
                int counter   = 0;
                foreach (var c in companies)
                {
                    counter++;

                    var    companyName = c.Attribute("name").Value;
                    var    city        = c.Attribute("city").Value;
                    var    url         = string.Format("http://www.{0}.pl", companyName);
                    string postalCode  = string.Format("43-3{0}", (counter + 5) * 11);
                    var    street      = string.Format("ul. Przykładowa {0}", (counter + 3) * 14);
                    var    description = string.Format("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.");
                    var    email       = string.Format("{0}@mailinator.com", companyName);
                    var    phone       = string.Format("{0}264{1}24{2}{3}", counter + 1, counter, counter, counter + 1);

                    Console.WriteLine(companyName);

                    var company = companyCreator.Create(companyName, street, city, postalCode, email, phone, url, description);

                    var offers = c.Descendants("offer").ToList();
                    foreach (var o in offers)
                    {
                        var       offerName = o.Attribute("name").Value;
                        var       trade     = o.Attribute("trade").Value;
                        OfferType type      = null;

                        if (o.Attribute("type").Value == "0")
                        {
                            type = offerTypesProvider.GetAllOfferTypes().Single(n => n.Name.ToLower() == "praktyka");
                        }
                        else
                        {
                            type = offerTypesProvider.GetAllOfferTypes().Single(n => n.Name.ToLower() == "staż");
                        }

                        offerCreator.Create(offerName, description, trade, company, type);
                    }
                }
            }
        }
Exemple #19
0
 public CoursesPutController(CourseCreator creator)
 {
     _creator = creator;
 }
Exemple #20
0
 public CourseCreatorShould()
 {
     this._creator = new CourseCreator(this.Repository.Object, this.EventBus.Object);
 }