Ejemplo n.º 1
0
        public ActionResult Search([FromQuery] string blogName, [FromBody] BlogSearchCriteria criteria)
        {
            var articles = new List <BlogArticle>();

            var blog = WorkContext.Blogs.FirstOrDefault(b => b.Name.Equals(blogName, StringComparison.OrdinalIgnoreCase));

            if (blog != null)
            {
                var query = blog.Articles.AsQueryable().Where(x => x.IsPublished);
                if (!string.IsNullOrEmpty(criteria.Category))
                {
                    query = query.Where(a => !string.IsNullOrEmpty(a.Category) && a.Category.Handelize().EqualsInvariant(criteria.Category));
                }
                if (!string.IsNullOrEmpty(criteria.Tag))
                {
                    query = query.Where(a => a.Tags != null && a.Tags.Select(t => t.Handelize()).Contains(criteria.Tag, StringComparer.OrdinalIgnoreCase));
                }
                if (criteria.ExcludedArticleHandles != null && criteria.ExcludedArticleHandles.Any())
                {
                    query = query.Where(a => !criteria.ExcludedArticleHandles.Contains(a.Url));
                }

                articles = query.OrderByDescending(a => a.CreatedDate).Skip((criteria.PageNumber - 1) * criteria.PageSize).Take(criteria.PageSize).ToList();
            }

            return(Json(articles));
        }
Ejemplo n.º 2
0
 public IEnumerable <Blog> FindBlogs(BlogSearchCriteria criteria)
 {
     return
         (repository.GetBlogs(context.Site.ID).ToArray()
          .Where(a =>
                 a.Name.IndexOf(criteria.Name, StringComparison.OrdinalIgnoreCase) != -1 ||
                 a.DisplayName.IndexOf(criteria.Name, StringComparison.OrdinalIgnoreCase) != -1
                 ).ToArray());
 }
Ejemplo n.º 3
0
        public virtual OxiteViewModelItems <Blog> FindQuery(BlogSearchCriteria searchCriteria)
        {
            IEnumerable <Blog>         foundBlogs = blogService.FindBlogs(searchCriteria);
            OxiteViewModelItems <Blog> model      = new OxiteViewModelItems <Blog>(foundBlogs);

            model.AddModelItem(searchCriteria);

            return(model);
        }
Ejemplo n.º 4
0
        public IEnumerable <Blog> FindBlogs(BlogSearchCriteria criteria)
        {
            return(Enumerable.Empty <Blog>());

            /*repository.GetBlogs().ToArray()
             * .Where(a =>
             *  a.Name.IndexOf(criteria.Name, StringComparison.OrdinalIgnoreCase) != -1 ||
             *  a.DisplayName.IndexOf(criteria.Name, StringComparison.OrdinalIgnoreCase) != -1
             *  ).ToArray();*/
        }
Ejemplo n.º 5
0
        public OxiteViewModelItems <Blog> FindQuery(BlogSearchCriteria searchCriteria)
        {
            //TODO: (erikpo) Check permissions

            IEnumerable <Blog>         foundBlogs = blogService.FindBlogs(searchCriteria);
            OxiteViewModelItems <Blog> model      = new OxiteViewModelItems <Blog>(foundBlogs);

            model.AddModelItem(searchCriteria);

            return(model);
        }