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)); }
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); }
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)); }
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"); }
public async Task GetByIdAsync_ItemExists_ReturnsTopicDto() { var actual = await _service.GetByIdAsync("topic1"); actual.Should().BeOfType <TopicDto>(); }