Exemplo n.º 1
0
        public async Task <ArticlePageListModel> GetArticlesAsync(ArticleFilterModel criterias)
        {
            if (criterias == null)
            {
                criterias = new ArticleFilterModel();
            }

            var filterRequest = new ArticleFilter
            {
                Page     = criterias.Page,
                PageSize = _pagerOptions.PageSize,
                Keyword  = criterias.Search
            };

            try
            {
                var articlePageList = await _articleService.GetAsync(filterRequest);

                var articles = await MapArticlesResultToModelAsync(articlePageList.Collections);

                var articlePage = new ArticlePageListModel(articles)
                {
                    Filter      = criterias,
                    TotalPage   = articlePageList.TotalPage,
                    TotalResult = articlePageList.TotalResult
                };

                return(articlePage);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public void GetAllArticles_WithoutFilters_Success()
        {
            var filter     = new ArticleFilter();
            var pagination = new ArticlePaginationFilter()
            {
                PageNumber = 1, PageSize = 5
            };
            var filterQuery      = _mapper.Map <ArticleQuery>(filter);
            var articles         = GetTestArticles().AsQueryable().OrderByDescending(x => x.Created);
            var filteredArticles = articles.Select(x => _mapper.Map <ArticleDto>(x)).ToList();

            _articleRepositoryMock.Setup(x => x.GetAllQueryable()).Returns(articles);
            _articleFilterServiceMock.Setup(x => x.AddAllFiltersQuery(filterQuery, articles))
            .Returns(articles);

            var actual = _service.GetAllArticles(filter, pagination);

            var expectedSer = JsonConvert.SerializeObject(filteredArticles);
            var actualSer   = JsonConvert.SerializeObject(actual.Data);

            //Assert.AreEqual(1, actual.TotalPages);
            Assert.AreEqual(pagination.PageSize, actual.PageSize);
            Assert.AreEqual(pagination.PageNumber, actual.PageNumber);
            //Assert.AreEqual(expectedSer, actualSer);
        }
 private IEnumerable <ArticleModel> GetWithPaging(ArticleFilter articleFilter, IQueryable <Articles> query)
 {
     _unitOfWork.GetRepository <Articles>().GetWithPaging(articleFilter.PageIndex, articleFilter.PageSize, 0, query);
     return(query.Select(x => new ArticleModel {
         Name = x.Title
     }).ToList());
 }
Exemplo n.º 4
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;
 }
Exemplo n.º 5
0
        public async Task <IList <ArticleResult> > GetRelevantsAsync(long id, ArticleFilter filter)
        {
            var articles = await _articleRepository.GetRelevantsAsync(id, filter);

            var createdByIds   = articles.Select(x => x.CreatedById).ToArray();
            var createdByUsers = await _userRepository.GetNameByIdsAsync(createdByIds);

            var articleIds = articles.Select(x => x.Id);
            var pictures   = await _articlePictureRepository.GetArticlePicturesByArticleIdsAsync(articleIds, new IdRequestFilter <long>
            {
                CanGetDeleted   = filter.CanGetDeleted,
                CanGetInactived = filter.CanGetInactived
            });

            foreach (var article in articles)
            {
                var createdBy = createdByUsers.FirstOrDefault(x => x.Id == article.CreatedById);
                article.CreatedBy = createdBy.DisplayName;

                var picture = pictures.FirstOrDefault(x => x.ArticleId == article.Id);
                if (picture != null)
                {
                    article.Picture = new PictureResult {
                        Id = picture.PictureId
                    };
                }
            }

            return(articles);
        }
Exemplo n.º 6
0
        public async Task <IList <ArticleModel> > GetRelevantArticlesAsync(ArticleFilterModel criterias)
        {
            if (criterias == null)
            {
                criterias = new ArticleFilterModel();
            }

            if (!criterias.Id.HasValue || criterias.Id <= 0)
            {
                return(new List <ArticleModel>());
            }

            var filterRequest = new ArticleFilter()
            {
                Page     = criterias.Page,
                PageSize = criterias.PageSize.HasValue && criterias.PageSize < _pagerOptions.PageSize ? criterias.PageSize.Value : _pagerOptions.PageSize,
                Keyword  = criterias.Search
            };

            try
            {
                var relevantArticles = await _articleService.GetRelevantsAsync(criterias.Id.GetValueOrDefault(), filterRequest);

                var products = await MapArticlesResultToModelAsync(relevantArticles);

                return(products);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 7
0
        public async Task <IList <ArticleResult> > GetRelevantsAsync(long id, ArticleFilter filter)
        {
            var exist = (from ar in _articleRepository.Get(x => x.Id == id && x.StatusId != ArticleStatus.Deleted.GetCode())
                         select new ArticleResult
            {
                Id = ar.Id,
                CreatedById = ar.CreatedById,
                UpdatedById = ar.UpdatedById,
                ArticleCategoryId = ar.ArticleCategoryId
            }).FirstOrDefault();

            var relevantArticleQuery = (from ar in _articleRepository.Get(x => x.Id != exist.Id && x.StatusId != ArticleStatus.Deleted.GetCode())
                                        where ar.CreatedById == exist.CreatedById ||
                                        ar.ArticleCategoryId == exist.ArticleCategoryId ||
                                        ar.UpdatedById == exist.UpdatedById
                                        select new ArticleResult
            {
                Id = ar.Id,
                Name = ar.Name,
                CreatedById = ar.CreatedById,
                CreatedDate = ar.CreatedDate,
                Description = ar.Description,
                UpdatedById = ar.UpdatedById,
                UpdatedDate = ar.UpdatedDate,
                Content = ar.Content,
            });

            var relevantArticles = await relevantArticleQuery
                                   .OrderByDescending(x => x.CreatedDate).Skip(filter.PageSize * (filter.Page - 1))
                                   .Take(filter.PageSize).ToListAsync();

            return(relevantArticles);
        }
Exemplo n.º 8
0
        private async void buttonGetArticle_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = null;
            this.buttonGetArticle.Enabled = false;

            try
            {
                var zalandoWrapper = new ZalandoWrapper();

                var filter = new ArticleFilter();
                //filter.AgeGroup = AgeGroup.Kids | AgeGroup.Babies;
                filter.AgeGroup = this.comboBoxAgeGroup.SelectedItem as AgeGroup?;
                filter.Color    = this.comboBoxColor.SelectedItem as Color?;
                filter.FullText = this.textBoxFullText.Text;
                filter.Gender   = this.comboBoxGender.SelectedItem as Gender?;

                var task = await zalandoWrapper.GetArticles(filter);

                this.dataGridView1.DataSource = task.Content;
            }
            catch (Exception exception)
            {
            }

            this.buttonGetArticle.Enabled = true;
        }
Exemplo n.º 9
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;
        }
Exemplo n.º 10
0
        // [OutputCache(VaryByParam = "filter")]
        public ViewResult Index(ArticleFilter filter)
        {
            var repo  = _unitOfWork.ArticlesRepository;
            var query = _unitOfWork.ArticlesRepository
                        .All()
                        .Select(x => new { Article = x, DevicesCount = x.Devices.Count });

            if (filter != null)
            {
                if (!string.IsNullOrWhiteSpace(filter.Code))
                {
                    query = query.Where(x => x.Article.Code.StartsWith(filter.Code));
                }

                if (!string.IsNullOrWhiteSpace(filter.Name))
                {
                    query = query.Where(x => x.Article.Name.StartsWith(filter.Name));
                }
            }

            var model = new ArticlesList
            {
                Items = query.ToList()
                        .Select(x =>
                {
                    // set devices count to use in mapper
                    x.Article.DevicesCount = x.DevicesCount;
                    return(_mapper.Map <Article>(x.Article));
                })
                        .ToList(),
                Filter = filter
            };

            return(View(model));
        }
Exemplo n.º 11
0
    protected void InitalizeCategoryArticles()
    {
        ArticlesByCategoryPlaceHolder.Controls.Clear();

        var categories = ArticleCategory.GetAllActiveCategories(SelectedCountry);

        ArticleFilter articleFilter = new ArticleFilter(SelectedCountry);

        articleFilter.FirstResults = 3;

        if (categories.Count == 0)
        {
            ArticlesByCategoryPlaceHolder.Controls.Add(GetNoArticlesLiteral());
            return;
        }

        foreach (var category in categories)
        {
            articleFilter.CategoryId = category.Id;
            List <Article> articles = ArticlesManager.Get(articleFilter);

            Literal literal = new Literal();
            literal.Text = String.Format("<h5>{0}</h5>", category.Text);
            ArticlesByCategoryPlaceHolder.Controls.Add(literal);

            AddArticlesToPlaceholder(articles, ArticlesByCategoryPlaceHolder, ArticleType.Category);
        }
    }
        public async Task <IEnumerable <ArticleModel> > GetData(ArticleFilter articleFilter)
        {
            var query          = GetWithFilter(articleFilter);
            var dataWithPaging = GetWithPaging(articleFilter, query);

            return(await dataWithPaging.ToAsyncEnumerable().Select(x => new ArticleModel {
                Name = x.Name
            }).ToList());
        }
Exemplo n.º 13
0
        public async Task <PagedList <Article> > GetArticles(ArticleFilter filter)
        {
            IQueryable <Article> articles = filter.StoreId > 0
                ? _context.ArticleStores
                                            .Where(ast => ast.StoreId == filter.StoreId)
                                            .Select(ast => ast.Article)
                : _context.Articles.AsQueryable();

            articles = articles
                       .Include(a => a.ArticleUserSettings)
                       .Include(a => a.StockEntryValues)
                       .Include(a => a.ArticleStores)
                       .Where(a => a.ArticleUserSettings.Any(aus => aus.EnvironmentId == filter.EnvironmentId));

            if (filter.IsOnStock)
            {
                List <int> articlesOnStock = await _context.StockEntries
                                             .Where(se => se.EnvironmentId == filter.EnvironmentId)
                                             .Select(se => se.ArticleId).ToListAsync();

                articles = articles.Where(a => articlesOnStock.Contains(a.Id));
            }

            if (filter.IsOpened)
            {
                var articlesOpened = await _context.StockEntryValues
                                     .Where(sev => sev.IsOpened && sev.EnvironmentId == filter.EnvironmentId)
                                     .Select(sev => sev.ArticleId)
                                     .ToListAsync();

                articles = articles.Where(a => articlesOpened.Contains(a.Id));
            }

            if (filter.KeepOnStock)
            {
                var keepStockArticles = await _context.ArticleUserSettings
                                        .Where(aus => aus.KeepStockAmount > 0 && aus.EnvironmentId == filter.EnvironmentId)
                                        .Select(aus => aus.ArticleId).ToListAsync();

                articles = articles.Where(a => keepStockArticles.Contains(a.Id));
            }

            if (!string.IsNullOrEmpty(filter.NameOrEan))
            {
                var envArticles = await _context.ArticleUserSettings
                                  .Where(aus => aus.EnvironmentId == filter.EnvironmentId)
                                  .Select(aus => aus.ArticleId).ToListAsync();

                articles = articles
                           .Where(a => a.Barcode == filter.NameOrEan || a.Name.Contains(filter.NameOrEan) &&
                                  envArticles.Contains(a.Id));
            }

            articles = articles.OrderBy(a => a.Name);
            return(await PagedList <Article> .CreateAsync(articles, filter.PageNumber, filter.PageSize));
        }
Exemplo n.º 14
0
        // GET: Admin
        public async Task <ActionResult> Index(ArticleFilter filter)
        {
            var articles = await db.GetArticles(filter.Year, filter.Title);

            var model = new ArticleList {
                Articles = articles, Filter = filter
            };

            return(View("Index", model));
        }
Exemplo n.º 15
0
        /// <summary>
        /// Gets a list of up to 250 articles belonging to the given blog.
        /// </summary>
        /// <param name="blogId">The blog that the articles belong to.</param>
        /// <param name="filter">Options for filtering the result.</param>
        public virtual async Task <IEnumerable <Article> > ListAsync(long blogId, ArticleFilter filter = null)
        {
            var req = PrepareRequest($"blogs/{blogId}/articles.json");

            if (filter != null)
            {
                req.Url.QueryParams.AddRange(filter.ToParameters());
            }

            return(await ExecuteRequestAsync <List <Article> >(req, HttpMethod.Get, rootElement : "articles"));
        }
Exemplo n.º 16
0
    protected void InitalizeTreningArticles()
    {
        TreningArticlesPlaceHolder.Controls.Clear();

        ArticleFilter articleFilter = new ArticleFilter(SelectedCountry);

        articleFilter.FirstResults = 5;
        List <Article> articles = ArticlesManager.Get(articleFilter);

        AddArticlesToPlaceholder(articles, TreningArticlesPlaceHolder);
    }
Exemplo n.º 17
0
    protected void InitalizeHeadliner()
    {
        ArticleHeadlinerPlaceHolder.Controls.Clear();

        ArticleFilter articleFilter = new ArticleFilter(SelectedCountry);

        articleFilter.FirstResults = 1;
        List <Article> articles = ArticlesManager.Get(articleFilter);

        AddArticlesToPlaceholder(articles, ArticleHeadlinerPlaceHolder, ArticleType.Headliner);
    }
Exemplo n.º 18
0
    protected void InitalizeSuggestedArticles()
    {
        SuggestedArticlesPlaceHolder.Controls.Clear();

        ArticleFilter articleFilter = new ArticleFilter(SelectedCountry);

        articleFilter.FirstResults = 5;
        articleFilter.CategoryId   = Article.CategoryId;
        List <Article> articles = ArticlesManager.Get(articleFilter);

        AddArticlesToPlaceholder(articles, SuggestedArticlesPlaceHolder);
    }
Exemplo n.º 19
0
    protected void InitalizeMainArticles()
    {
        ArticlesPlaceHolder.Controls.Clear();

        ArticleFilter articleFilter = new ArticleFilter(SelectedCountry);

        articleFilter.SkipFirst    = 1; //We want to skip headliner
        articleFilter.FirstResults = 30;
        List <Article> articles = ArticlesManager.Get(articleFilter);

        AddArticlesToPlaceholder(articles, ArticlesPlaceHolder, ArticleType.Main);
    }
Exemplo n.º 20
0
        public Pagination <ArticleDto> GetAllArticles(ArticleFilter filters = null, ArticlePaginationFilter pagination = null)
        {
            var filterQuery        = _mapper.Map <ArticleQuery>(filters);
            var paginationQuery    = _mapper.Map <ArticlePaginationQuery>(pagination);
            var skip               = (paginationQuery.PageNumber - 1) * paginationQuery.PageSize;
            var articles           = GetArticlesWithIncludes().OrderByDescending(x => x.Created);
            var filteredArticles   = _articleFilterService.AddAllFiltersQuery(filterQuery, articles).ToList();
            var articlesResult     = filteredArticles.Select(x => _mapper.Map <ArticleDto>(x)).Skip(skip).Take(paginationQuery.PageSize);
            var paginationResponse = PaginationHelper.CreatePaginatedResponse(_uriService, paginationQuery,
                                                                              articlesResult.ToList(), filteredArticles.ToList(), "/Article", filterQuery);

            return(paginationResponse);
        }
Exemplo n.º 21
0
 public ActionResult <Pagination <IEnumerable <ArticleDto> > > GetAllArticles([FromQuery] ArticleFilter articleFilters       = null,
                                                                              [FromQuery] ArticlePaginationFilter pagination = null)
 {
     try
     {
         var articles = _articleService.GetAllArticles(articleFilters, pagination);
         return(Ok(articles));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Exemplo n.º 22
0
        // GET: SkinCare/page-1
        public ActionResult Page(int page = 1)
        {
            ArticleFilter af = new ArticleFilter();

            af.Status = Consts.ArticleStatus_Published;

            var pager = PageReq <ArticleFilter> .Create(af, page, 10);

            var article = jlService.ArticlePage(pager);


            return(View(article));
        }
Exemplo n.º 23
0
        public static SortDefinition <ArticleEntity> GetSortFilter(ArticleFilter filter)
        {
            SortDefinition <ArticleEntity> sortDefinition = null;

            if (filter != null)
            {
                if (filter.ByAuthorAsc.HasValue)
                {
                    if (filter.ByAuthorAsc.Value)
                    {
                        sortDefinition = Builders <ArticleEntity> .Sort.Ascending(a => a.Author);
                    }
                    else
                    {
                        sortDefinition = Builders <ArticleEntity> .Sort.Descending(a => a.Author);
                    }
                }

                if (filter.ByDateAsc.HasValue)
                {
                    if (filter.ByDateAsc.Value)
                    {
                        sortDefinition = Builders <ArticleEntity> .Sort.Ascending(a => a.Date);
                    }
                    else
                    {
                        sortDefinition = Builders <ArticleEntity> .Sort.Descending(a => a.Date);
                    }
                }

                if (filter.ByOwnerAsc.HasValue)
                {
                    if (filter.ByOwnerAsc.Value)
                    {
                        sortDefinition = Builders <ArticleEntity> .Sort.Ascending(a => a.Owner);
                    }
                    else
                    {
                        sortDefinition = Builders <ArticleEntity> .Sort.Descending(a => a.Owner);
                    }
                }
            }

            if (sortDefinition == null)
            {
                sortDefinition = Builders <ArticleEntity> .Sort.Ascending(a => a.Id);
            }

            return(sortDefinition);
        }
Exemplo n.º 24
0
        public async Task <RequestInfo> GetArticles(ArticleFilter articleFilter)
        {
            using (var httpClient = new HttpClient())
            {
                var query = articleFilter.GetFilter();

                httpClient.DefaultRequestHeaders.Add("Accept-Language", this._language);
                var httpResponseMessage = await httpClient.GetAsync($"https://api.zalando.com/articles{query}");

                var json = await httpResponseMessage.Content.ReadAsStringAsync();

                var requestInfo = JsonConvert.DeserializeObject <RequestInfo>(json);
                return(requestInfo);
            }
        }
Exemplo n.º 25
0
        // GET: backend/Article
        public ActionResult Index(ArticleSearchModel model, int page = 1)
        {
            ArticleFilter filter = new ArticleFilter();

            filter.Title  = model.Title;
            filter.Status = Consts.ArticleStatus_All;
            var pager = PageReq <ArticleFilter> .Create(filter, page);

            pager.OrderBy = "order by addtime";

            var data = jlService.ArticlePage(pager);

            ViewBag.articleQuery = filter;
            ViewBag.ReturnUrl    = Request.Url.PathAndQuery;
            return(View(data));
        }
Exemplo n.º 26
0
        public async Task <IActionResult> GetArticles([FromQuery] ArticleFilter filter)
        {
            if (!await _authService
                .IsPermitted(User, filter.EnvironmentId))
            {
                return(Unauthorized());
            }

            PagedList <Article> articles = await _repo.GetArticles(filter);

            IEnumerable <ArticleDto> articlesDto = _mapper.Map <IEnumerable <ArticleDto> >(articles);

            Response.AddPagination(articles.CurrentPage, articles.PageSize, articles.TotalCount, articles.TotalPages);

            return(Ok(articlesDto));
        }
Exemplo n.º 27
0
        public async Task <ArticlePageListModel> GetUserArticlesAsync(ClaimsPrincipal claimsPrincipal, ArticleFilterModel criterias)
        {
            if (criterias == null)
            {
                criterias = new ArticleFilterModel();
            }

            if (string.IsNullOrEmpty(criterias.UserIdentityId))
            {
                return(new ArticlePageListModel(new List <ArticleModel>())
                {
                    Filter = criterias
                });
            }

            var currentUserId = GetCurrentUserId(claimsPrincipal);
            var userId        = await _userManager.DecryptUserIdAsync(criterias.UserIdentityId);

            var filterRequest = new ArticleFilter
            {
                Page            = criterias.Page,
                PageSize        = _pagerOptions.PageSize,
                Keyword         = criterias.Search,
                CreatedById     = userId,
                CanGetInactived = currentUserId == userId
            };

            try
            {
                var articlePageList = await _articleService.GetAsync(filterRequest);

                var articles = await MapArticlesResultToModelAsync(articlePageList.Collections);

                var articlePage = new ArticlePageListModel(articles)
                {
                    Filter      = criterias,
                    TotalPage   = articlePageList.TotalPage,
                    TotalResult = articlePageList.TotalResult
                };

                return(articlePage);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 28
0
        // [HttpPost]
        public ActionResult DeleteArticle(int id, ArticleFilter filter)
        {
            var repo = _unitOfWork.ArticlesRepository;

            var hasDevices = _unitOfWork.DevicesRepository.All().Any(x => x.ArticleId == id);
            var hasOrders  = _unitOfWork.OrdersRepository.All().Any(x => x.Articles.Any(a => a.Id == id));

            if (!hasDevices && !hasOrders)
            {
                repo.Delete(id);
                _unitOfWork.SaveChanges();
                return(RedirectToAction("Index", new { filter }));
            }

            ModelState.AddModelError("", "Can't delete article because it has devices or orders.");
            return(View("CantDeleteArticle"));
        }
        private IQueryable <Articles> GetWithFilter(ArticleFilter articleFilter)
        {
            var repository = _unitOfWork.GetRepository <Articles>();
            IQueryable <Articles> query = repository.GetWithFilter();

            if (articleFilter.id != 0)
            {
                query = repository.GetWithFilter((x => x.ArticleId == articleFilter.id));
            }

            else if (articleFilter.name != "")
            {
                query = query.Where(x => x.Title == articleFilter.name);
            }

            return(query);
        }
Exemplo n.º 30
0
        public async Task <BasePageList <ArticleResult> > GetAsync(ArticleFilter filter)
        {
            var articlePageList = await _articleRepository.GetAsync(filter);

            var createdByIds = articlePageList.Collections.Select(x => x.CreatedById).ToArray();
            var updatedByIds = articlePageList.Collections.Select(x => x.UpdatedById).ToArray();

            var createdByUsers = await _userRepository.GetNameByIdsAsync(createdByIds);

            var updatedByUsers = await _userRepository.GetNameByIdsAsync(updatedByIds);

            var articleIds = articlePageList.Collections.Select(x => x.Id);
            var pictures   = await _articlePictureRepository.GetArticlePicturesByArticleIdsAsync(articleIds, new IdRequestFilter <long>
            {
                CanGetDeleted   = filter.CanGetDeleted,
                CanGetInactived = filter.CanGetInactived
            });

            var userAvatars = await _userPhotoRepository.GetUserPhotosByUserIdsAsync(createdByIds, UserPictureType.Avatar);

            foreach (var article in articlePageList.Collections)
            {
                var createdBy = createdByUsers.FirstOrDefault(x => x.Id == article.CreatedById);
                article.CreatedBy = createdBy.DisplayName;

                var updatedBy = updatedByUsers.FirstOrDefault(x => x.Id == article.UpdatedById);
                article.UpdatedBy   = updatedBy.DisplayName;
                article.Description = string.IsNullOrEmpty(article.Description) ? HtmlUtil.TrimHtml(article.Content) : article.Description;

                var picture = pictures.FirstOrDefault(x => x.ArticleId == article.Id);
                if (picture != null)
                {
                    article.Picture = new PictureResult {
                        Id = picture.PictureId
                    };
                }

                var avatar = userAvatars.FirstOrDefault(x => x.UserId == article.CreatedById);
                if (avatar != null)
                {
                    article.CreatedByPhotoCode = avatar.Code;
                }
            }

            return(articlePageList);
        }
Exemplo n.º 31
0
    protected void LoadArticles()
    {
        string country    = CountriesDropDownList.SelectedValue.Replace("'", "''");
        string searchText = SearchTextBox.Text.Replace("'", "''");

        ArticleFilter articleFilter = new ArticleFilter(CountriesDropDownList.SelectedValue, Convert.ToInt32(CategoriesDropDownList.SelectedValue));

        if (!String.IsNullOrWhiteSpace(searchText))
        {
            articleFilter.SearchText = searchText;
        }

        List <Article> articles = ArticlesManager.Get(articleFilter);

        ArticlesPlaceHolder.Controls.Clear();
        for (int i = 0; i < articles.Count; i++)
        {
            ArticlesPlaceHolder.Controls.Add(GetArticleHTML(articles[i]));
        }
    }