コード例 #1
0
        public async Task GetEditArticlesAsync()
        {
            // arrange
            var request = new GetArticlesRequest
            {
                LanguageId = 3
            };

            // act
            var result = await this.articleService.GetEditArticlesAsync(request);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.OK, result.Status);

            var articles = result.Articles;

            Assert.IsNotNull(articles);
            Assert.AreEqual(3, articles.Count);

            var article1 = articles[0];

            Assert.AreEqual(1, article1.Id);
            Assert.AreEqual("Bonjour Madam", article1.Title);

            var article2 = articles[1];

            Assert.AreEqual(2, article2.Id);
            Assert.AreEqual("Mange Dieu", article2.Title);

            var article3 = articles[2];

            Assert.AreEqual(3, article3.Id);
            Assert.AreEqual("Wuthering Heights", article3.Title);
        }
コード例 #2
0
        public async Task <GetArticlesResponse> GetArticlesAsync(GetArticlesRequest request)
        {
            var response = new GetArticlesResponse();

            try
            {
                response.Articles = await this.articleVersionRepository.GetAsync(q => q
                                                                                 .Where(x => x.LanguageId == request.LanguageId && x.IsPublished == true)
                                                                                 .OrderBy(x => x.Title)
                                                                                 .Select(x => new ArticleSummaryDto
                {
                    Id    = x.ArticleId,
                    Title = x.Title
                })
                                                                                 );

                response.Status = StatusCode.OK;
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return(response);
        }
コード例 #3
0
        public async Task GetArticlesAsync_DefaultLanguage()
        {
            // arrange
            var request = new GetArticlesRequest();

            // act
            var result = await this.articleService.GetArticlesAsync(request);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.OK, result.Status);

            var articles = result.Articles;

            Assert.IsNotNull(articles);
            Assert.AreEqual(3, articles.Count);

            var article1 = articles[0];

            Assert.AreEqual(2, article1.Id);
            Assert.AreEqual("Great Expectations", article1.Title);

            var article2 = articles[1];

            Assert.AreEqual(1, article2.Id);
            Assert.AreEqual("Middlemarch", article2.Title);

            var article3 = articles[2];

            Assert.AreEqual(3, article3.Id);
            Assert.AreEqual("Wuthering Heights", article3.Title);
        }
コード例 #4
0
        public async Task <IHttpActionResult> Get([FromUri] GetArticlesRequest request)
        {
            var query = articleService.GetArticlesWithStatQuery(request.SortBy).Where(it => it.IsPublished);
            var data  = await ToPagedList <ArticleStatResponse>(query, request.PageNumber, request.PageSize);

            return(Ok(data));
        }
コード例 #5
0
        public async Task <IHttpActionResult> Get()
        {
            var request = new GetArticlesRequest();

            request.TenantUniqueId = Request.GetTenantUniqueId();
            return(Ok(await _mediator.Send(request)));
        }
コード例 #6
0
        public async Task <GetArticlesResponse> GetEditArticlesAsync(GetArticlesRequest request)
        {
            var response = new GetArticlesResponse();

            try
            {
                response.Articles = await this.articleRepository.GetAsync(q => q
                                                                          .SelectMany(a => a.ArticleVersions
                                                                                      .Where(l => l.LanguageId == request.LanguageId)
                                                                                      .DefaultIfEmpty(a.ArticleVersions.Where(x => x.LanguageId == 1).FirstOrDefault()
                                                                                                      ),
                                                                                      (a, av) => new ArticleSummaryDto
                {
                    Id    = a.Id,
                    Title = av.Title
                })
                                                                          );

                response.Status = StatusCode.OK;
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return(response);
        }
コード例 #7
0
        public async Task GetEditArticlesAsync()
        {
            // arrange
            var request = new GetArticlesRequest
            {
                LanguageId = 3
            };

            // act
            var result = await this.articleService.GetEditArticlesAsync(request);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.OK, result.Status);

            var articles = result.Articles;
            Assert.IsNotNull(articles);
            Assert.AreEqual(3, articles.Count);

            var article1 = articles[0];
            Assert.AreEqual(1, article1.Id);
            Assert.AreEqual("Bonjour Madam", article1.Title);

            var article2 = articles[1];
            Assert.AreEqual(2, article2.Id);
            Assert.AreEqual("Mange Dieu", article2.Title);

            var article3 = articles[2];
            Assert.AreEqual(3, article3.Id);
            Assert.AreEqual("Wuthering Heights", article3.Title);
        }
コード例 #8
0
ファイル: ArticleService.cs プロジェクト: porl88/Website-MVC
        public async Task<GetArticlesResponse> GetArticlesAsync(GetArticlesRequest request)
        {
            var response = new GetArticlesResponse();

            try
            {
                response.Articles = await this.articleVersionRepository.GetAsync(q => q
                    .Where(x => x.LanguageId == request.LanguageId && x.IsPublished == true)
                    .OrderBy(x => x.Title)
                    .Select(x => new ArticleSummaryDto
                    {
                        Id = x.ArticleId,
                        Title = x.Title
                    })
                );

                response.Status = StatusCode.OK;
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return response;
        }
コード例 #9
0
        public async Task <IActionResult> GetArticles([FromQuery] GetArticlesRequest articlesRequest)
        {
            var query = articleService.GetArticles(articlesRequest.SortBy).Where(it => it.IsPublished);
            var data  = await query.ToPagedList <Article, ArticleResponse>(mapper, articlesRequest);

            return(Ok(data));
        }
コード例 #10
0
        public async Task <IHttpActionResult> GetMyArticles([FromUri] GetArticlesRequest request)
        {
            var query = articleService.GetMyArticlesWithStatQuery(HttpContext.Current.User.Identity.Name, request.SortBy);
            var data  = await ToPagedList(query, request.PageNumber, request.PageSize);

            return(Ok(data));
        }
コード例 #11
0
        public void And_Given_The_Hub_And_Slug_Then_The_Url_Is_Correct()
        {
            //Act
            var actual = new GetArticlesRequest("hub", "slug");

            //Assert
            actual.GetUrl.Should().Be("article/hub/slug");
        }
コード例 #12
0
        public async Task <IActionResult> GetArticles([FromQuery] GetArticlesRequest request)
        {
            var response = await mediator.Send(request);

            Log.Information($"User #{HttpContext.GetCurrentUserId()} fetched articles");

            return(this.CreateResponse(response));
        }
コード例 #13
0
        public async Task <IActionResult> GetAllCryptoBlogs()
        {
            var request = new GetArticlesRequest
            {
                ArticleType   = ArticleType.CryptoBlog,
                RequestedUser = GetLoggerUserFromJwt()
            };

            return(Ok(await _mediator.Send(request)));
        }
コード例 #14
0
        public ActionResult GetNewArticles(int page = 1)
        {
            var request = new GetArticlesRequest
            {
                PageSize  = 6,
                PageIndex = page - 1
            };
            var model = _articleService.GetNewArticles(request);

            return(PartialView(model));
        }
コード例 #15
0
        public ActionResult GetVideos(int page = 1)
        {
            var request = new GetArticlesRequest
            {
                PageSize  = 5,
                PageIndex = page - 1
            };
            var videoThumb = _videoService.GetVideoThumb(request);

            //return PartialView(videoThumb);
            return(PartialView(videoThumb));
        }
コード例 #16
0
        public JsonResponse <GetArticlesResponse> Get([FromQuery] GetArticlesRequest request)
        {
            try
            {
                var response = _articleService.GetArticles(request);

                return(new JsonResponse <GetArticlesResponse>(response));
            }
            catch (Exception error)
            {
                return(new JsonResponse <GetArticlesResponse>(error));
            }
        }
コード例 #17
0
        private IPagedList <ArticleListingModel> GetArticleListing(int page, ERootCategory rootCate)
        {
            var request = new GetArticlesRequest
            {
                RootCate  = (int)rootCate,
                PageSize  = 5,
                PageIndex = page - 1
            };

            var result = _articleService.GetArticles(request);

            return(result);
        }
コード例 #18
0
        public IPagedList <ArticleListingModel> GetArticles(GetArticlesRequest request)
        {
            if (request.PageIndex < 0)
            {
                request.PageIndex = 0;
            }
            if (request.PageSize < 1)
            {
                request.PageSize = 10;
            }
            var currentLanguage = _workContext.CurrentLanguage;

            var articleQuery = (from a in _articleRepository.Table.Where(p => p.RootCate == request.RootCate && p.IsActive == true)
                                join al in _articleLanguageRepository.Table.Where(p => p.LanguageId == currentLanguage) on a.Id equals al.ArticleId

                                select new ArticleListingModel
            {
                Id = a.Id,
                ImageId = a.FeatureImageId,
                HeadLine = al.HeadLine,
                Extract = al.Extract,
                PushlishDate = a.PublishDate
            });
            var total         = articleQuery.Count();
            var pagedArticles = articleQuery.OrderByDescending(p => p.PushlishDate).Skip(request.PageIndex * request.PageSize).Take(request.PageSize).ToList();


            foreach (var article in pagedArticles)
            {
                if (article.ImageId.HasValue)
                {
                    article.UrlImage = _mediaService.GetPictureUrl(article.ImageId.Value);
                }
                else
                {
                    article.UrlImage = "~/Content/images/no-image.png";
                }
            }
            ;


            return(new PagedList <ArticleListingModel>(pagedArticles, request.PageIndex, request.PageSize, total));
        }
コード例 #19
0
        public async Task GetArticlesAsync_ContainsUnpublishedArticles()
        {
            // arrange
            var request = new GetArticlesRequest
            {
                LanguageId = 2
            };

            // act
            var result = await this.articleService.GetArticlesAsync(request);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.OK, result.Status);

            var articles = result.Articles;

            Assert.IsNotNull(articles);
            Assert.AreEqual(1, articles.Count);
        }
コード例 #20
0
        public ActionResult Result(string search = "", int page = 1)
        {
            ViewBag.Key = search;
            var request = new GetArticlesRequest
            {
                PageSize  = 10,
                PageIndex = page - 1
            };

            if (!String.IsNullOrEmpty(search))
            {
                var result = _articleService.GetArticlesByString(search, request);
                if (result == null)
                {
                    return(NotFound());
                }
                return(View(result));
            }
            else
            {
                var result = _articleService.GetNewArticles(request);
                return(View(result));
            }
        }
コード例 #21
0
 public GetArticlesResponse GetArticles(GetArticlesRequest request)
 {
     throw new NotImplementedException();
 }
コード例 #22
0
        public async Task GetArticlesAsync_ContainsUnpublishedArticles()
        {
            // arrange
            var request = new GetArticlesRequest
            {
                LanguageId = 2
            };

            // act
            var result = await this.articleService.GetArticlesAsync(request);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.OK, result.Status);

            var articles = result.Articles;
            Assert.IsNotNull(articles);
            Assert.AreEqual(1, articles.Count);
        }
コード例 #23
0
        public async Task GetArticlesAsync_DefaultLanguage()
        {
            // arrange
            var request = new GetArticlesRequest();

            // act
            var result = await this.articleService.GetArticlesAsync(request);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.OK, result.Status);

            var articles = result.Articles;
            Assert.IsNotNull(articles);
            Assert.AreEqual(3, articles.Count);

            var article1 = articles[0];
            Assert.AreEqual(2, article1.Id);
            Assert.AreEqual("Great Expectations", article1.Title);

            var article2 = articles[1];
            Assert.AreEqual(1, article2.Id);
            Assert.AreEqual("Middlemarch", article2.Title);

            var article3 = articles[2];
            Assert.AreEqual(3, article3.Id);
            Assert.AreEqual("Wuthering Heights", article3.Title);
        }
コード例 #24
0
ファイル: ArticleService.cs プロジェクト: sakhatyla/SakhaTyla
        public override async Task <ArticlePageModel> GetArticles(GetArticlesRequest getArticlesRequest, ServerCallContext context)
        {
            var getArticles = _mapper.Map <GetArticlesRequest, GetArticles>(getArticlesRequest);

            return(_mapper.Map <PageModel <ArticleModel>, ArticlePageModel>(await _mediator.Send(getArticles)));
        }
コード例 #25
0
ファイル: ArticleService.cs プロジェクト: porl88/Website-MVC
        public async Task<GetArticlesResponse> GetEditArticlesAsync(GetArticlesRequest request)
        {
            var response = new GetArticlesResponse();

            try
            {
                response.Articles = await this.articleRepository.GetAsync(q => q
                    .SelectMany(a => a.ArticleVersions
                        .Where(l => l.LanguageId == request.LanguageId)
                        .DefaultIfEmpty(a.ArticleVersions.Where(x => x.LanguageId == 1).FirstOrDefault()
                    ),
                    (a, av) => new ArticleSummaryDto
                    {
                        Id = a.Id,
                        Title = av.Title
                    })
                 );

                response.Status = StatusCode.OK;
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return response;
        }
コード例 #26
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            var request = new GetArticlesRequest(_options);

            return(_requestAggreg.HandleAsync(request));
        }
コード例 #27
0
ファイル: GetArticlesTest.cs プロジェクト: wbz-hot/BitClub7
 void AndGivenCommandPrepared()
 {
     _request = new GetArticlesRequest {
         ArticleType = ArticleType.Standard
     };
 }