Пример #1
0
 public Importer(Manifest manifest, Course course, ICourseStorage courseStorage)
 {
     _Manifest = manifest;
     _Course = course;
     _CourseStorage = courseStorage;
     _CoursePath = _CourseStorage.GetCoursePath(_Course.Id);
     _CourseTempPath = _CourseStorage.GetCourseTempPath(_Course.Id);
 }
Пример #2
0
        public ActionResult Edit(int courseId, Course course, IEnumerable<Guid> sharewith)
        {

            _Storage.UpdateCourse(courseId, course);
            _Storage.UpdateCourseUsers(courseId, sharewith);

            return RedirectToAction("Index");
        }
Пример #3
0
        public ActionResult Create(Course course, IEnumerable<Guid> sharewith)
        {
            course.Owner = _UserService.GetCurrentUser().Username;
            var id = _Storage.AddCourse(course);
            _Storage.UpdateCourseUsers(id, sharewith);

            return RedirectToAction("Index");
        }
Пример #4
0
        public ActionResult Create(Course course)
        {
            int? id = storage.AddCourse(course);

            if (id != null)
            {
                return RedirectToAction("Index");
            }
            else
            {
                return View("Error");
            }
        }
Пример #5
0
        protected override void Initialize(RequestContext requestContext)
        {
            base.Initialize(requestContext);
            //StorageFactory factory = new StorageFactory();
            //Storage = factory.CreateStorage(StorageType.Mixed);

            var courseId = Convert.ToInt32(requestContext.RouteData.Values["CourseID"]);
            _CurrentCourse = _Storage.GetCourse(courseId);

            if (_CurrentCourse == null)
            {
                requestContext.HttpContext.Response.Redirect("/Course/Index");
            }

            //LmsService.Inform("yo/andrij", "test1", "test2");

            base.Initialize(requestContext);
        }
Пример #6
0
        public int? AddCourse(Course course)
        {
            try
            {
                //course.Name = null;//
                course.Created = DateTime.Now;
                course.Updated = DateTime.Now;

                db.Courses.InsertOnSubmit(course);
                db.SubmitChanges();

                string path = GetCoursePath(course.Id);
                @Directory.CreateDirectory(path);

                return course.Id;
            }
            catch
            {
                return null;
            }
        }
Пример #7
0
        public int AddCourse(Course course)
        {
            course.Created = DateTime.Now;
            course.Updated = DateTime.Now;
            var db = GetDbContext();

            db.Courses.InsertOnSubmit(course);
            db.SubmitChanges();

            var path = GetCoursePath(course.Id);
            @Directory.CreateDirectory(path);

            var templatePath = GetTemplatesPath();

            foreach (var templateFile in _TemplateFiles)
            {
                File.Copy(Path.Combine(templatePath, templateFile), Path.Combine(path, templateFile), true);
            }

            _LmsService.Inform(CourseNotifications.CourseCreate, course);

            return course.Id;
        }
Пример #8
0
        public bool UpdateCourse(int id, Course course)
        {
            try
            {
                Course oldCourse = db.Courses.Single(c => c.Id == id);

                oldCourse.Name = course.Name;
                oldCourse.Owner = course.Owner;
                oldCourse.Updated = DateTime.Now;

                db.SubmitChanges();

                return true;
            }
            catch
            {
                return false;
            }
        }
Пример #9
0
 public int? Import(string path)
 {
     try
     {
         Course course = new Course();
         string folderPath = path.Substring(0, path.Length - 4);
         CourseManagment.Helpers.Zipper.ExtractZipFile(path, folderPath);
         course.Name = folderPath.Split('\\').Last();
         course.Owner = "Imported";
         return this.AddCourse(course);
     }
     catch
     {
         return null;
     }
 }
Пример #10
0
        public void UpdateCourseTest()
        {
            Course oldCourse = _Storage.GetCourse(2);

            Course newCourse = new Course {Name = "New Course"};

            _Storage.UpdateCourse(2,newCourse);
            Assert.AreNotEqual(oldCourse.Owner,newCourse.Owner);
            Assert.AreEqual(oldCourse.Name,newCourse.Name);
            Assert.AreNotEqual(oldCourse.Updated,newCourse.Updated);
        }
Пример #11
0
 public CourseResult(Course course)
 {
     this.course = course;
 }
Пример #12
0
        public void UpdateCourse(int id, Course course)
        {
            var db = GetDbContext();

            var oldCourse = db.Courses.Single(c => c.Id == id);

            oldCourse.Name = course.Name;
            oldCourse.Updated = DateTime.Now;
            oldCourse.Sequencing = course.Sequencing;

            db.SubmitChanges();

            _LmsService.Inform(CourseNotifications.CourseEdit, course);
        }
Пример #13
0
 partial void DeleteCourse(Course instance);
Пример #14
0
 partial void UpdateCourse(Course instance);
Пример #15
0
 partial void InsertCourse(Course instance);
Пример #16
0
        public void UpdateCourse(int id, Course course)
        {
            using (var db = new CourseManagementDbConext())
            {
                var oldCourse = db.Courses.Single(c => c.Id == id);

                oldCourse.Name = course.Name;
                oldCourse.Updated = DateTime.Now;
                oldCourse.Sequencing = course.Sequencing;

                db.SaveChanges();

                _LmsService.Inform(CourseNotifications.CourseEdit, course);
            }
        }
Пример #17
0
        public int AddCourse(Course course)
        {
            course.Created = DateTime.Now;
            course.Updated = DateTime.Now;

            using (var db = new CourseManagementDbConext())
            {

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

                var path = GetCoursePath(course.Id);
                @Directory.CreateDirectory(path);

                var templatePath = GetTemplatesPath();

                foreach (var templateFile in _TemplateFiles)
                {
                    File.Copy(Path.Combine(templatePath, templateFile), Path.Combine(path, templateFile), true);
                }

                _LmsService.Inform(CourseNotifications.CourseCreate, course);

                return course.Id;
            }
        }
Пример #18
0
 public long GetAttempt(Course course)
 {
     throw new NotImplementedException();
 }
Пример #19
0
        public ActionResult Search(String query)
        {
            Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(Server.MapPath("~/Data/Index")));
            IndexSearcher searcher = new IndexSearcher(directory, true);
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);

            MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
                    Version.LUCENE_29,
                    new String[] { "Name", "Content" },
                    analyzer
                );

            ScoreDoc[] scoreDocs = searcher.Search(queryParser.Parse(query), 10).scoreDocs;
            List<ISearchResult> results = new List<ISearchResult>();

            foreach (ScoreDoc doc in scoreDocs)
            {
                ISearchResult result;
                Document document = searcher.Doc(doc.doc);
                String type = document.Get("Type").ToLower();

                switch (type)
                {
                    case "node":
                        Node node = new Node();
                        node.Id = Convert.ToInt32(document.Get("ID"));
                        node.Name = document.Get("Name");
                        node.CourseId = Convert.ToInt32(document.Get("CourseID"));
                        node.IsFolder = Convert.ToBoolean(document.Get("isFolder"));

                        result = new NodeResult(node, document.Get("Content"));

                        break;

                    case "course":

                        Course course = new Course();
                        course.Id = Convert.ToInt32(document.Get("ID"));
                        course.Name = document.Get("Name");

                        result = new CourseResult(course);

                        break;

                    default:
                        throw new Exception("Unknown result type");
                }

                results.Add(result);
            }

            analyzer.Close();
            searcher.Close();
            directory.Close();

            ViewData["SearchString"] = query;

            return View(results);
        }
Пример #20
0
        protected override void Initialize(RequestContext requestContext)
        {
            base.Initialize(requestContext);
            //StorageFactory factory = new StorageFactory();
            //Storage = factory.CreateStorage(StorageType.Mixed);

            int courseId = Convert.ToInt32(requestContext.RouteData.Values["CourseID"]);
            CurrentCourse = storage.GetCourse(courseId);

            if (CurrentCourse == null)
            {
                requestContext.HttpContext.Response.Redirect("/Course/Index");
            }

            base.Initialize(requestContext);
        }
Пример #21
0
 public CourseResult(Course course, string update, string owner)
 {
     _Course = course;
     _Update = update;
     _Owner = owner;
 }
Пример #22
0
        public void Import(string path, string owner)
        {
            var zipName = Path.GetFileNameWithoutExtension(path);

            var course = new Course
                             {
                                 Name = zipName,
                                 Owner = owner,
                                 Locked = true
                             };

            AddCourse(course);
            
            File.Copy(path, GetCoursePath(course.Id) + ".zip");
        }
Пример #23
0
        public ActionResult Edit(int courseId, Course course)
        {
            bool result = storage.UpdateCourse(courseId, course);

            if (result)
            {
                return RedirectToAction("Index");
            }
            else
            {
                return View("Error");
            }
        }
Пример #24
0
        public void AddCourseTest()
        {Course course = new Course {Owner = "lex", Name = "new Course"};

            int id = _Storage.AddCourse(course);

            Course c = _Storage.GetCourse(id);

            Assert.AreEqual(course.Name,c.Name);
            Assert.AreEqual(course.Owner,c.Owner);
            
        }
Пример #25
0
        public ActionResult Search(String query)
        {
            if (query == "")
                return RedirectToAction("Index");

            query = query + "~";

            DateTime datastart = DateTime.Now;
            Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(Server.MapPath("~/Data/Index")));
            IndexSearcher searcher = new IndexSearcher(directory, true);
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);

            MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
                    Version.LUCENE_29,
                    new String[] { "Name", "Content", "Curriculum", "User", "Group", "Theme" },
                    analyzer
                );


            ScoreDoc[] scoreDocs = searcher.Search(queryParser.Parse(query), 100).scoreDocs;

            Hits hit = searcher.Search(queryParser.Parse(query));
            int total = hit.Length();



            List<ISearchResult> results = new List<ISearchResult>();
            Stopwatch sw = new Stopwatch();

            sw.Start();
            foreach (ScoreDoc doc in scoreDocs)
            {
                ISearchResult result;
                Document document = searcher.Doc(doc.doc);
                String type = document.Get("Type").ToLower();

                switch (type)
                {
                    case "node":
                        Node node = new Node();
                        node.Id = Convert.ToInt32(document.Get("ID"));
                        node.Name = document.Get("Name");
                        node.CourseId = Convert.ToInt32(document.Get("CourseID"));
                        node.IsFolder = Convert.ToBoolean(document.Get("isFolder"));

                        result = new NodeResult(node, _CourseService.GetCourse(node.CourseId).Name, document.Get("Content"), _CourseService.GetCourse(node.CourseId).Updated.ToString());

                        break;

                    case "course":

                        Course course = new Course();
                        course.Id = Convert.ToInt32(document.Get("ID"));
                        course.Name = document.Get("Name");

                        result = new CourseResult(course,_CourseService.GetCourse(course.Id).Updated.ToString(), _CourseService.GetCourse(course.Id).Owner);

                        break;
                    case "curriculum":

                        Curriculum curriculum = new Curriculum();
                        curriculum.Id = Convert.ToInt32(document.Get("ID"));
                        curriculum.Name = document.Get("Curriculum");

                        result = new CurriculumResult(curriculum, _CurriculmService.GetCurriculum(curriculum.Id).Updated.ToString());

                        break;

                    case "user":

                        User user = new User();
                        user.Id = Guid.Parse(document.Get("ID"));
                        user.Name = document.Get("User");
                        /*user.RoleId = Convert.ToInt32(document.Get("RoleId"));*/

                        result = new UserResult(user, user.RolesLine);

                        break;

                    case "group":

                        Group group = new Group();
                        group.Id = int.Parse(document.Get("ID"));
                        group.Name = document.Get("Group");

                        result = new GroupResult(group);

                        break;

                    case "theme":

                        Theme theme = new Theme();
                        theme.Id = Convert.ToInt32(document.Get("ID"));
                        theme.Name = document.Get("Theme");
                        theme.CourseRef = Convert.ToInt32(document.Get("CourseRef"));

                        result = new ThemeResult(theme, _CourseService.GetCourse(theme.CourseRef).Name);

                        break;

                    default:
                        throw new Exception("Unknown result type");
                }

                results.Add(result);
            }
            sw.Stop();

            DateTime dataend = DateTime.Now;
            analyzer.Close();
            searcher.Close();
            directory.Close();

            ViewData["SearchString"] = query;
            ViewData["score"] = Math.Abs(dataend.Millisecond - datastart.Millisecond); //sw.ElapsedMilliseconds.ToString();
            ViewData["total"] = total;

            return View(results);
        }