Пример #1
0
 void AndGivenCommandPrepared()
 {
     _request = new GetArticleRequest
     {
         Id = _articleId
     };
 }
Пример #2
0
        public async Task <IActionResult> Get(Guid id)
        {
            var request = new GetArticleRequest {
                Id = id
            };

            return(Ok(await _mediator.Send(request)));
        }
Пример #3
0
        public async Task <IActionResult> GetArticle([FromQuery] GetArticleRequest request)
        {
            var response = await mediator.Send(request);

            Log.Information($"User #{HttpContext.GetCurrentUserId()} fetched article #{request.ArticleId}");

            return(this.CreateResponse(response));
        }
Пример #4
0
        public async Task GetArticleAsync_ArticleNotFound()
        {
            // arrange
            var request = new GetArticleRequest
            {
                ArticleId = 55
            };

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

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.NotFound, result.Status);
        }
Пример #5
0
        public async Task <GetArticleResponse> GetArticleAsync(GetArticleRequest request)
        {
            var response = new GetArticleResponse();

            try
            {
                //var kkk = await this.articleRepository.GetSingleAsync(q =>
                //    from x in q
                //    from y in x.ArticleVersions
                //    where x.Id == y.ArticleId
                //    select new ArticleDto
                //    {
                //        Id = y.ArticleId,
                //        Title = y.Title,
                //        Content = y.Content,
                //        LastUpdated = x.Updated
                //    }
                //);

                response.Article = await this.articleVersionRepository.GetSingleAsync(q => q
                                                                                      .Where(x => x.ArticleId == request.ArticleId && x.LanguageId == request.LanguageId && x.IsPublished)
                                                                                      .Select(x => new ArticleDto
                {
                    Id          = x.ArticleId,
                    Title       = x.Title,
                    Content     = x.Content,
                    LastUpdated = x.Updated
                })
                                                                                      );

                if (response.Article != null)
                {
                    response.Status = StatusCode.OK;
                }
                else
                {
                    response.Status = StatusCode.NotFound;
                }
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return(response);
        }
Пример #6
0
        public async Task<GetArticleResponse> GetArticleAsync(GetArticleRequest request)
        {
            var response = new GetArticleResponse();

            try
            {
                //var kkk = await this.articleRepository.GetSingleAsync(q =>
                //    from x in q
                //    from y in x.ArticleVersions
                //    where x.Id == y.ArticleId
                //    select new ArticleDto
                //    {
                //        Id = y.ArticleId,
                //        Title = y.Title,
                //        Content = y.Content,
                //        LastUpdated = x.Updated
                //    }
                //);

                response.Article = await this.articleVersionRepository.GetSingleAsync(q => q
                    .Where(x => x.ArticleId == request.ArticleId && x.LanguageId == request.LanguageId && x.IsPublished)
                    .Select(x => new ArticleDto
                    {
                        Id = x.ArticleId,
                        Title = x.Title,
                        Content = x.Content,
                        LastUpdated = x.Updated
                    })
                );

                if (response.Article != null)
                {
                    response.Status = StatusCode.OK;
                }
                else
                {
                    response.Status = StatusCode.NotFound;
                }
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return response;
        }
Пример #7
0
        public async static Task <Article> GetAsync(string type, string id, IEnumerable <string> fields = null)
        {
            var request = new GetArticleRequest()
            {
                Id = id, Type = type,
            };

            if (fields != null)
            {
                request.Fields.AddRange(fields);
            }
            var response = await request.ExecuteAsync();

            if (response.Status.IsSuccessful == false)
            {
                throw response.Status.ToFault();
            }
            Debug.Assert(response.Article != null, "For a successful get call, article should always be returned.");
            return(response.Article);
        }
Пример #8
0
        public async Task GetArticleAsync_DefaultLanguage()
        {
            // arrange
            var request = new GetArticleRequest
            {
                ArticleId = 2
            };

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

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

            var article = result.Article;

            Assert.IsNotNull(article);
            Assert.AreEqual(2, article.Id);
            Assert.AreEqual("Great Expectations", article.Title);
            Assert.AreEqual("Rubbish", article.Content);
        }
Пример #9
0
        public async Task GetArticleAsync()
        {
            // arrange
            var request = new GetArticleRequest
            {
                ArticleId  = 2,
                LanguageId = 2
            };

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

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

            var article = result.Article;

            Assert.IsNotNull(article);
            Assert.AreEqual(2, article.Id);
            Assert.AreEqual("Mein Kampf", article.Title);
            Assert.AreEqual("Achtung!", article.Content);
        }
Пример #10
0
        public async Task <EditArticleResponse> GetEditArticleAsync(GetArticleRequest request)
        {
            var response = new EditArticleResponse();

            try
            {
                response.Article = await this.articleVersionRepository.GetSingleAsync(q => q.
                                                                                      Where(x => x.ArticleId == request.ArticleId && x.LanguageId == request.LanguageId).
                                                                                      Select(x => new ArticleEditDto
                {
                    ArticleId        = x.ArticleId,
                    ArticleVersionId = x.Id,
                    LanguageId       = x.LanguageId,
                    Title            = x.Title,
                    Content          = x.Content,
                    Publish          = x.IsPublished
                }
                                                                                             ));

                if (response.Article != null)
                {
                    response.Status = StatusCode.OK;
                }
                else
                {
                    response.Status = StatusCode.NotFound;
                }
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return(response);
        }
Пример #11
0
        public async Task<EditArticleResponse> GetEditArticleAsync(GetArticleRequest request)
        {
            var response = new EditArticleResponse();

            try
            {
                response.Article = await this.articleVersionRepository.GetSingleAsync(q => q.
                    Where(x => x.ArticleId == request.ArticleId && x.LanguageId == request.LanguageId).
                    Select(x => new ArticleEditDto
                    {
                        ArticleId = x.ArticleId,
                        ArticleVersionId = x.Id,
                        LanguageId = x.LanguageId,
                        Title = x.Title,
                        Content = x.Content,
                        Publish = x.IsPublished
                    }
                ));

                if (response.Article != null)
                {
                    response.Status = StatusCode.OK;
                }
                else
                {
                    response.Status = StatusCode.NotFound;
                }
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Status = StatusCode.InternalServerError;
            }

            return response;
        }
Пример #12
0
        public override async Task <Article> GetArticle(GetArticleRequest getArticleRequest, ServerCallContext context)
        {
            var getArticle = _mapper.Map <GetArticleRequest, GetArticle>(getArticleRequest);

            return(_mapper.Map <ArticleModel, Article>(await _mediator.Send(getArticle)));
        }
Пример #13
0
        public async Task GetArticleAsync_ArticleVersionNotFound()
        {
            // arrange
            var request = new GetArticleRequest
            {
                ArticleId = 1,
                LanguageId = 2
            };

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

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCode.NotFound, result.Status);
        }
Пример #14
0
        public async Task GetArticleAsync_DefaultLanguage()
        {
            // arrange
            var request = new GetArticleRequest
            {
                ArticleId = 2
            };

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

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

            var article = result.Article;
            Assert.IsNotNull(article);
            Assert.AreEqual(2, article.Id);
            Assert.AreEqual("Great Expectations", article.Title);
            Assert.AreEqual("Rubbish", article.Content);
        }
Пример #15
0
        public async Task GetArticleAsync()
        {
            // arrange
            var request = new GetArticleRequest
            {
                ArticleId = 2,
                LanguageId = 2
            };

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

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

            var article = result.Article;
            Assert.IsNotNull(article);
            Assert.AreEqual(2, article.Id);
            Assert.AreEqual("Mein Kampf", article.Title);
            Assert.AreEqual("Achtung!", article.Content);
        }
        public Task StartAsync(CancellationToken cancellationToken)
        {
            var request = new GetArticleRequest(_options);

            return(_getRequestAggreg.HandleAsync(request));
        }