public DisciplineResult Find(long id) { Model.Discipline entity = Dao.Find(id); DisciplineResult result = ResultConverter.Convert(entity); return(result); }
public DisciplineResult GetPage(string filter, int?draw, int?initialPage, int?pageSize, string sortDir, string sortBy) { using (SATEntities db = new SATEntities()) { DisciplineResult result = new DisciplineResult(); try { var data = db.tb_Discipline.ToList(); int recordsTotal = data.Count(); if (!string.IsNullOrEmpty(filter)) { data = data.Where(x => x.DisName.Contains(filter)).ToList(); } int recordsFiltered = data.Count(); switch (sortBy) { case "DisName": data = (sortDir == "asc") ? data.OrderBy(x => x.DisName).ToList() : data.OrderByDescending(x => x.DisName).ToList(); break; } int start = initialPage.HasValue ? (int)initialPage / (int)pageSize : 0; int length = pageSize ?? 10; var list = data.Select((s, i) => new DisciplineViewModel() { RowNumber = i + 1, DisID = s.DisID, DisName = s.DisName, }).Skip(start * length).Take(length).ToList(); result.draw = draw ?? 0; result.recordsTotal = recordsTotal; result.recordsFiltered = recordsFiltered; result.data = list; } catch (Exception) { } return(result); } }
public void CalculateSpecializedResultTest() { User usr = new User() { Username = "******" }; Topic thm = new Topic() { Name = "Topic One" }; AttemptResult AR = new AttemptResult(1, usr, thm, CompletionStatus.Completed, AttemptStatus.Completed, SuccessStatus.Passed, DateTime.Now, 0.5f); TopicResult topicRes = new TopicResult(usr, thm); List <AttemptResult> ARL = new List <AttemptResult>(); ARL.Add(AR); topicRes.AttemptResults = ARL; topicRes.GetTopicResultScore(); DisciplineResult currRes = new DisciplineResult(); currRes.TopicResult.Add(topicRes); Discipline curr = null; currRes.CalculateSumAndMax(usr, curr); SpecializedResult target = new SpecializedResult(); target.DisciplineResult.Add(currRes); target.CalculateSpecializedResult(usr); double?ExpectedSum = 50.0; double?ExpectedMax = 100.0; double?ExpectedPercent = 50.0; char ExpextedECTS = 'F'; Assert.AreEqual(ExpectedSum, target.Sum); Assert.AreEqual(ExpectedMax, target.Max); Assert.AreEqual(ExpectedPercent, target.Percent); Assert.AreEqual(ExpextedECTS, target.ECTS); }
private void MakeSearch(SearchModel model) { string query = model.SearchText + "~"; 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); List <string> strings = new List <string>(); foreach (var checkBox in model.CheckBoxes) { if (checkBox.IsChecked) { if (checkBox.SearchType == SearchType.Courses) { //make filtration here... strings.Add("Name"); strings.Add("Content"); } if (checkBox.SearchType == SearchType.Topics) { //make filtration here... strings.Add("Topic"); } if (checkBox.SearchType == SearchType.Users) { //make filtration here... strings.Add("User"); } if (checkBox.SearchType == SearchType.Disciplines) { //make filtration here... strings.Add("Discipline"); } //make filtration here... } } MultiFieldQueryParser queryParser = new MultiFieldQueryParser( Version.LUCENE_29, strings.ToArray(), //new String[] { "Name", "Content", "Discipline", "User", "Group", "Topic" }, analyzer ); ScoreDoc[] scoreDocs = searcher.Search(queryParser.Parse(query), 100).scoreDocs; Hits hit = searcher.Search(queryParser.Parse(query)); int total = hit.Length(); List <Discipline> disciplines123 = _CurriculmService.GetDisciplines(_UserService.GetCurrentUser()).ToList(); List <Course> courses123 = _CourseService.GetCourses(_UserService.GetCurrentUser()).ToList(); List <TopicDescription> topics123 = _CurriculmService.GetTopicsAvailableForUser(_UserService.GetCurrentUser()).ToList(); //List<Discipline> topics123 = _CurriculmService.GetDisciplinesWithTopicsOwnedByUser(_UserService.GetCurrentUser()).ToList(); //foreach(Discipline curr in disciplines123){ // topics123.InsertRange(topics123.Count - 1, _CurriculmService.GetTopicsByDisciplineId(curr.Id)); //} 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("NodeID")); node.Name = document.Get("Name"); node.CourseId = Convert.ToInt32(document.Get("NodeCourseID")); 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()); results.Add(result); break; case "course": Course course = new Course(); course.Id = Convert.ToInt32(document.Get("CourseID")); course.Name = document.Get("Name"); foreach (Course cour in courses123) { if (cour.Id == course.Id) { result = new CourseResult(course, _CourseService.GetCourse(course.Id).Updated.ToString(), _CourseService.GetCourse(course.Id).Owner); results.Add(result); break; } } break; case "discipline": Discipline discipline = new Discipline(); discipline.Id = Convert.ToInt32(document.Get("DisciplineID")); discipline.Name = document.Get("Discipline"); discipline.Owner = document.Get("Owner"); string str = _CurriculmService.GetDiscipline(discipline.Id).Owner; foreach (Discipline curr in disciplines123) { if (curr.Owner.Equals(discipline.Owner)) { result = new DisciplineResult(discipline, _CurriculmService.GetDiscipline(discipline.Id).Updated.ToString()); results.Add(result); break; } } break; case "user": User user = new User(); user.Id = Guid.Parse(document.Get("UserID")); user.Name = document.Get("User"); //user.Roles /*user.RoleId = Convert.ToInt32(document.Get("RoleId"));*/ result = new UserResult(user); results.Add(result); break; case "group": Group group = new Group(); group.Id = int.Parse(document.Get("GroupID")); group.Name = document.Get("Group"); result = new GroupResult(group); results.Add(result); break; case "topic": Topic topic = new Topic(); topic.Id = Convert.ToInt32(document.Get("TopicID")); topic.Name = document.Get("Topic"); if (document.Get("CourseRef") == "null") { topic.CourseRef = null; } else { topic.CourseRef = Convert.ToInt32(document.Get("CourseRef")); } foreach (TopicDescription themdesc in topics123) { if (themdesc.Topic.Id == topic.Id) { result = new TopicResult(topic, _CourseService.GetCourse(topic.CourseRef.Value).Name); results.Add(result); break; } } break; default: throw new Exception("Unknown result type"); } } 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; model.SearchResult = results; model.Total = total; model.Score = Math.Abs(dataend.Millisecond - datastart.Millisecond); }