public async Task <IActionResult> Index() { var stories = await newsRepository.All().EagerLoad().ForPage(1).ResultsAsync(); ViewBag.CurrentPage = "News"; ViewBag.CurrentPageNo = 1; return(View(new NewsViewModel() { Stories = stories.Select(s => NewsStoryDTO.ToDTO(s)), PageNumbers = GetPageNumbers() })); }
public async Task <IActionResult> Page(int pageNo) { if (pageNo == 1) { return(RedirectToActionPermanent("Index")); } var stories = await newsRepository.All().EagerLoad().ForPage(pageNo).ResultsAsync(); ViewBag.CurrentPage = "News"; ViewBag.CurrentPageNo = pageNo; return(View(new NewsViewModel() { Stories = stories.Select(s => NewsStoryDTO.ToDTO(s)), PageNumbers = GetPageNumbers() })); }
public async Task <IActionResult> ViewStory(int id, string title) { var article = await newsRepository.GetByIdAsync(id, true); if (article.IsNull()) { return(NotFound()); } var friendlyUrl = StringExtensions.URLFriendly(article.Title); if (!string.Equals(friendlyUrl, title, StringComparison.Ordinal)) { return(RedirectToRoutePermanent("", new { id, title = friendlyUrl })); } ViewBag.CurrentPage = "News"; return(View(NewsStoryDTO.ToDTO(article))); }
public void CreateNews_CorrectData_ShouldCreateAndReturnNewsStory() { var mockContext = new Mock <INewsData>(); mockContext.Setup(m => m.News) .Returns(this.mocks.NewsStoriesRepositoryMock.Object); this.mocks.NewsStoriesRepositoryMock.Setup(m => m.Add(It.IsAny <NewsStory>())) .Callback((NewsStory newsStory) => this.mocks.newsStories.Add(newsStory)); var newsStoriesController = new NewsStoriesController(mockContext.Object) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; var expectedNewsStory = new NewsStoryDTO() { Title = "TestNewsStory20", Content = "TestNewsStory20", PublishDate = DateTime.Now }; var createNewsStoryResponse = newsStoriesController.CreateNewsStory(new NewsStoryBindingModel() { Title = "TestNewsStory20", Content = "TestNewsStory20", PublishDate = DateTime.Now }).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.Created, createNewsStoryResponse.StatusCode); var createdNewsStory = createNewsStoryResponse.Content.ReadAsAsync <NewsStoryDTO>().Result; Assert.AreEqual(expectedNewsStory, createdNewsStory); }