public async Task <IViewComponentResult> InvokeAsync(Post pPost)
        {
            if (pPost == null)
            {
                throw new ArgumentNullException(nameof(pPost));
            }
            PersonView loginUser = await this.personService.GetCurrentPersonViewAsync();

            PersonView publicUser = await this.personService.GetPersonViewAsync(pPost.PersonId);

            List <Tag> tags = await this.tagService.GetTagsByPostId(pPost.Id);

            ArticleContentComponentModel model = new ArticleContentComponentModel()
            {
                LoginPerson    = loginUser,
                Post           = pPost,
                PublicPerson   = publicUser,
                Tags           = tags,
                Topic          = await topicService.GetByIdAsync(pPost.TopicId),
                PostData       = await postService.GetPostDataAsync(pPost),
                IsLikePost     = await this.zanService.IsPostZanAsync(pPost.Id),
                CurrentUrl     = this.HttpContext.Request.Path,
                IsFavoritePost = await this.favoriteService.IsFavorite(pPost.Id)
            };

            return(View(model));
        }
Example #2
0
        public async Task GetByIdAsyncWheIdIsCorrectReturnsTopicInstance()
        {
            // Arrange
            var mockUnitOfWork            = GetDefaultUnitOfWorkRepositoryInstance();
            var mockTopicRepository       = GetDefaultTopicRepositoryInstance();
            var mockCourseRepository      = new Mock <ICourseRepository>();
            var mockExpertTopicRepository = new Mock <IExpertTopicRepository>();
            var TopicId = 1;
            var topic   = new Topic()
            {
                Id       = 1,
                Name     = "string",
                CourseId = 1
            };

            mockTopicRepository.Setup(r => r.FindById(TopicId)).Returns(Task.FromResult(topic));
            var service = new TopicService(mockTopicRepository.Object, mockUnitOfWork.Object, mockCourseRepository.Object, mockExpertTopicRepository.Object);

            // Act
            TopicResponse result = await service.GetByIdAsync(TopicId);

            var resource = result.Resource;

            // Assert
            resource.Should().Equals(topic);
        }
Example #3
0
        public async Task <IActionResult> Details(Guid id, FilterType filter = FilterType.New, int page = 1)
        {
            Topic topic = await topicService.GetByIdAsync(id);

            if (topic == null || topic.IsHide)
            {
                return(NotFound());
            }
            if (page <= 0)
            {
                return(NotFound());
            }
            PagingResult <PostView> result = await this.postService.GetPagingResultAsync(id, PostResultType.All, page, filter);

            if (result.PageCount > 1 && page > result.PageCount)
            {
                return(NotFound());
            }
            TopicDetailsModel model = new TopicDetailsModel
            {
                Topic        = topic,
                PagingResult = result
            };

            return(View(model));
        }
Example #4
0
        public async Task GetByIdAsyncWhenInvalidIdReturnsTopicNotFoundResponse()
        {
            // Arrange
            var mockUnitOfWork            = GetDefaultUnitOfWorkRepositoryInstance();
            var mockTopicRepository       = GetDefaultTopicRepositoryInstance();
            var mockCourseRepository      = new Mock <ICourseRepository>();
            var mockExpertTopicRepository = new Mock <IExpertTopicRepository>();
            var TopicId = 1;

            mockTopicRepository.Setup(r => r.FindById(TopicId)).Returns(Task.FromResult <Topic>(null));
            var service = new TopicService(mockTopicRepository.Object, mockUnitOfWork.Object, mockCourseRepository.Object, mockExpertTopicRepository.Object);

            // Act
            TopicResponse result = await service.GetByIdAsync(TopicId);

            var message = result.Message;

            // Assert
            message.Should().Be("Topic not found");
        }
Example #5
0
        public async Task GetByIdAsync_ItemExists_ReturnsTopicDto()
        {
            var actual = await _service.GetByIdAsync("topic1");

            actual.Should().BeOfType <TopicDto>();
        }