Esempio n. 1
0
 public ArticleFilter(ArticleSearchCriteria criteria)
 {
     if (!String.IsNullOrEmpty(criteria.Title))
     {
         AddFilter(x => x.Where(a => a.Title.Contains(criteria.Title)));
     }
     if (!String.IsNullOrEmpty(criteria.Description))
     {
         AddFilter(x => x.Where(a => a.Title.Contains(criteria.Description)));
     }
     if (!String.IsNullOrEmpty(criteria.Author))
     {
         AddFilter(x =>
                   x.Where(
                       a => a.Authors.Any(u =>
                                          u.Email.Contains(criteria.Author) ||
                                          u.FirstName.Contains(criteria.Author) ||
                                          u.LastName.Contains(criteria.Author))));
     }
     if (criteria.Disciplines != null)
     {
         AddFilter(x => x.Where(a => a.Disciplines.Any(
                                    d => criteria.Disciplines.Contains(d.Id))));
     }
 }
Esempio n. 2
0
        public IEnumerable <Article> FindArticles(ArticleSearchCriteria criteria)
        {
            var filter = new ArticleFilter(criteria);

            return(filter.Select(Entities.Articles));
            //return criteria.Disciplines != null
            //    ? from article in Entities.Articles
            //      where
            //          article.Title.Contains(criteria.Title) &&
            //          article.Text.Contains(criteria.Description) &&
            //          (article.Authors.Any(a =>
            //              a.Email.Contains(criteria.Author) ||
            //              a.FirstName.Contains(criteria.Author) ||
            //              a.LastName.Contains(criteria.Author))) &&
            //          article.Disciplines.Any(d => criteria.Disciplines.Contains(d.Id))
            //      orderby article.PostedDate descending
            //      select article
            //    : from article in Entities.Articles
            //      where
            //          article.Title.Contains(criteria.Title) &&
            //          article.Text.Contains(criteria.Description) &&
            //          (article.Authors.Any(a =>
            //              a.Email.Contains(criteria.Author) ||
            //              a.FirstName.Contains(criteria.Author) ||
            //              a.LastName.Contains(criteria.Author)))
            //      orderby article.PostedDate descending
            //      select article;
        }
Esempio n. 3
0
        public static ArticleSearchCriteria Map(ArticleSearchViewModel viewModel)
        {
            var model = new ArticleSearchCriteria();

            model.Title       = viewModel.Title ?? String.Empty;
            model.Description = viewModel.Description ?? String.Empty;
            model.Author      = viewModel.Author ?? String.Empty;
            model.Disciplines = viewModel.Disciplines != null
                ? viewModel.Disciplines.Select(x => x.Id)
                : null;

            return(model);
        }
Esempio n. 4
0
 public SearchResult<Article> FindArticles(ArticleSearchCriteria criteria)
 {
     return SearchService.FindArticles(criteria);
 }
Esempio n. 5
0
        public SearchResult <Article> FindArticles(ArticleSearchCriteria criteria)
        {
            var articles = context.ArticleStorage.FindArticles(criteria);

            return(new SearchResult <Article>(articles.ToList()));
        }