private List <Content> getAllLessonOfTheCourse(Content con) { return(db.Contents.Include(x => x.Category).Include(x => x.Access).Include(x => x.TheLanguage).Include(x => x.Log) //.Include(x => x.CustomFieldValues) .Where(x => (x.TheLanguage == null || x.TheLanguage.Code == Language) && (MyPermission.See_Contents == true || (x.Access != null && MyViewLevelIDs.Contains(x.Access.ID))) && x.Category != null && x.Category.ID == con.Category.ID).ToList()); }
public List <ViewLevel> GetAllViewLevels() { if (MyPermission == null || MyViewLevelIDs == null) { return(new List <ViewLevel>()); } if (MyPermission.ViewLevels == true) { return(db.ViewLevels.ToList()); } return(db.ViewLevels.Where(x => MyViewLevelIDs.Contains(x.ID)).ToList()); }
public List <Content> GetAllContents() { if (MyPermission == null || MyViewLevelIDs == null) { return(new List <Content>()); } if (MyPermission.See_Contents == true) { return(db.Contents .Include(x => x.Access) .Include(x => x.Category) .Include(x => x.TheLanguage).ToList()); } return(db.Contents .Include(x => x.Access) .Include(x => x.Category) .Include(x => x.TheLanguage) .Where(x => (x.TheLanguage == null || x.TheLanguage.Code == Language) && x.Access != null && MyViewLevelIDs.Contains(x.Access.ID)).ToList()); }
public List <CategoryView> GetAllCategories(int without = -1, bool fiterlanguage = false) { List <Category> tmp = null; if (MyPermission.See_Categories == true) { tmp = GetAllParentCatgory(without); } else { tmp = db.Categories .Include(x => x.Access) .Include(x => x.TheLanguage) .Where(x => x.Parent == null && (x.TheLanguage == null || (fiterlanguage == false || x.TheLanguage.Code == Language)) && x.ID != without && x.Access != null && MyViewLevelIDs.Contains(x.Access.ID)) .ToList(); } return(FillWithChildren(tmp, without).ConvertToViewModel()); }
public ActionResult Show(int?id) { if (id == null) { return(BadRequest()); } Category category = db.Categories .Include(x => x.Access) //.Include(x => x.Contents) .Include(x => x.Parent) .Include(x => x.TheLanguage) .SingleOrDefault(x => x.ID == id && x.Published); if (category == null) { return(HttpNotFound()); } if (category.Template == CategorysTemplate.NotSet) { return(RedirectToAction("Details", "Category", new { id = id })); } if (MyPermission.See_Categories == true || (category.Access != null && MyViewLevelIDs.Contains(category.Access.ID))) { if (category.Template == CategorysTemplate.ArticleList) { category.Contents = db.Contents.Include(x => x.TheLanguage).Include(x => x.Access).Include(x => x.Category) .Where(x => x.Published && x.Category != null && x.Category.ID == id && (x.TheLanguage == null || x.TheLanguage.Code == Language) && x.Access != null && MyViewLevelIDs.Contains(x.Access.ID)) .ToList(); return(View("ArticleList", category)); } category.SubCategories = db.Categories .Include(x => x.Parent) .Include(x => x.Access) .Include(x => x.TheLanguage) .Where(x => x.Published && (x.TheLanguage == null || x.TheLanguage.Code == Language) && x.Parent != null && x.Parent.ID == category.ID && x.Access != null && MyViewLevelIDs.Contains(x.Access.ID)) .ToList(); ViewBag.NotEnrolledWith = db.Categories .Include(x => x.Parent) .Include(x => x.Access) .Include(x => x.TheLanguage) .Where(x => x.Published && (x.TheLanguage == null || x.TheLanguage.Code == Language) && x.Parent != null && x.Parent.ID == category.ID && (x.Access == null || MyViewLevelIDs.Contains(x.Access.ID) == false)) .ToList(); category.Contents = MarkTheVisited( db.Contents.Include(x => x.TheLanguage).Include(x => x.Access).Include(x => x.Category) .Where(x => x.Published && x.Category != null && x.Category.ID == id && (x.TheLanguage == null || x.TheLanguage.Code == Language) && x.Access != null && MyViewLevelIDs.Contains(x.Access.ID)) .ToList()); if (category.Template == CategorysTemplate.LessonOneByOne) { return(View(CategorysTemplate.Default.ToString(), category)); } return(View(category.Template.ToString(), category)); } return(Unauthorized()); }
public ActionResult Show(int?id) { if (id == null) { return(BadRequest()); } Content content = db.Contents .Include(x => x.Access) .Include(x => x.TheLanguage) .Include(x => x.Category) .SingleOrDefault(x => x.ID == id && x.Published); if (content == null) { return(HttpNotFound()); } content.CustomFieldValues = db.CustomFieldValues.Include(x => x.Content).Include(x => x.CustomField) .Where(x => x.Content.ID == id).ToList(); if (content.Template == ContentsTemplate.NotSet) { return(RedirectToAction("Details", "Contents", new { id = id })); } if (MyPermission.See_Contents == true || (content.Access != null && MyViewLevelIDs.Contains(content.Access.ID))) { if (content.Category != null && (content.Category.Template == CategorysTemplate.LessonOneByOne || content.Category.Template == CategorysTemplate.Default || content.Category.Template == CategorysTemplate.AsLinks)) { var lessons = MarkTheVisited(getAllLessonOfTheCourse(content)); ViewBag.Last = false; ViewBag.First = false; ViewBag.IsOk = true; ViewBag.IsComplete = true; for (int i = 0; i < lessons.Count; i++) { if (lessons[i].ID == id) { if (i == 0) { ViewBag.First = true; } if (i == lessons.Count - 1) { ViewBag.Last = true; } if (content.Category.Template == CategorysTemplate.LessonOneByOne) { if (ViewBag.First == false && lessons[i - 1].Visited == false) { ViewBag.IsOk = false; } } break; } if (ViewBag.IsComplete == true && lessons[i].Visited == false) { ViewBag.IsComplete = false; } } } if (ViewBag.IsOk == true) { var log = new ContentVisitLog() { Content = content, Username = Username, Date = DateTime.Now }; db.ContentVisitLogs.Add(log); db.SaveChanges(); } return(View(content.Template.ToString(), content)); } return(Unauthorized()); }
public ActionResult Index(string query, string lookingFor = "content", int page = 1, int pageSize = 10) { // fix the pages count, later // and fix the result page template ViewBag.Query = query; ViewBag.pageSize = pageSize; ViewBag.page = page; ViewBag.lookingFor = lookingFor; if (page <= 0 || pageSize <= 0 || string.IsNullOrEmpty(lookingFor)) { return(BadRequest()); } string[] queryTerms = null; if (string.IsNullOrEmpty(query) == false) { queryTerms = query.MargeWith(query.Split(' ', ',', '+')); } if (lookingFor.ToLower() == "content") { if (string.IsNullOrEmpty(query)) { return(View("SearchContents", null)); } var tmp = db.Contents .Include(x => x.Access) .Include(x => x.Category) .Where(x => x.Published && x.Access != null && MyViewLevelIDs.Contains(x.Access.ID)) .Search( x => x.Title, x => x.IntroText, x => x.FullText, x => x.Descrption, x => x.MetaDesc, x => x.MetaKey) .Containing(queryTerms) .OrderByDescending(x => x.CreatedTime); ViewBag.ItemCount = tmp.Count(); ViewBag.PageCount = (int)Math.Ceiling(ViewBag.ItemCount * 1.0 / pageSize); var res = tmp.Skip(pageSize * (page - 1)) .Take(pageSize) .ToList(); return(View("SearchContents", res)); } else if (lookingFor.ToLower() == "user") { if (string.IsNullOrEmpty(query)) { return(View("SearchUser", null)); } var tmp = db.Profiles.Search( x => x.username, x => x.Name, x => x.LastName, x => x.Email) .Containing(queryTerms) .OrderBy(x => x.Name); ViewBag.ItemCount = tmp.Count(); ViewBag.PageCount = Math.Ceiling(ViewBag.ItemCount * 1.0 / pageSize); var res = tmp.Skip(pageSize * (page - 1)) .Take(pageSize) .ToList(); return(View("SearchUsers", res)); } return(View("SearchContents", null)); }