Пример #1
0
 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());
 }
Пример #2
0
    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());
    }
Пример #3
0
    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());
    }
Пример #4
0
    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());
    }
Пример #5
0
        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());
        }
Пример #6
0
        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());
        }
Пример #7
0
        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));
        }