Пример #1
0
        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()
            }));
        }
Пример #2
0
        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()
            }));
        }
Пример #3
0
        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)));
        }
Пример #4
0
        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);
        }