コード例 #1
0
ファイル: HomeController.cs プロジェクト: romulus0305/INI
        public JsonResult ArchiveNews(int year)
        {
            IList <News> news = Db.News.Where(l => l.Year == year && l.Archive == false).ToList();

            News    temp;
            Archive temp2 = new Archive();

            int arhciveId = Db.Archives.Select(j => j.ArchiveId).Max() + 1;

            temp2.ArchiveId = arhciveId;
            temp2.Year      = year;

            foreach (var item in news)
            {
                temp            = Db.News.Where(n => n.NewsId == item.NewsId).FirstOrDefault();
                temp.Archive    = true;
                temp.Name       = item.Name;
                temp.Text       = item.Text;
                temp.Year       = item.Year;
                temp.Ord        = item.Ord;
                temp.LanguageId = item.LanguageId;

                Db.SaveChanges();

                temp2.News.Add(temp);
            }

            Db.Archives.Add(temp2);
            Db.SaveChanges();
            NewsListModel model = NewsBuilder.BuildNews(Db);


            return(Json(ResponseStatus.Success, RenderPartialViewToString("News", model), JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: romulus0305/INI
        public ActionResult News()
        {
            NewsListModel model = NewsBuilder.BuildNews(Db);

            ViewBag.Link = 4;
            return(View(model));
        }
コード例 #3
0
        public async Task UseCase_WhenOk_ResultNewsListOfComments()
        {
            int numCommentByNews = 10;
            var fakeComments     = new Faker <Comment>()
                                   .CustomInstantiator(f => new Comment(f.Lorem.Paragraph(), new Author(f.Person.UserName, f.Person.FullName)))
                                   .Generate(10);

            var fakeNews = new NewsBuilder()
                           .WithComments(fakeComments.ToArray())
                           .Build();

            var logger    = new Mock <ILogger <GetNewsByIdUseCase> >().Object;
            var validator = ValidatorFactory.GetValidValidator <Guid>();

            var repositoryMock = new Mock <INewsRepository>();

            repositoryMock.Setup(r => r.GetById(fakeNews.Id)).ReturnsAsync(fakeNews);
            repositoryMock.Setup(r => r.GetComments(fakeNews.Id, 10)).ReturnsAsync(fakeComments);

            var useCase  = new GetNewsByIdUseCase(logger, validator, repositoryMock.Object);
            var response = await useCase.Execute(fakeNews.Id);

            response.Result.NumComments.Should().Be(numCommentByNews);
            response.Result.Comments.Should()
            .NotContain(x => x.Text == null || x.Id == Guid.Empty || x.Author == null || x.Author.UserName == null);
            repositoryMock.Verify(r => r.GetById(fakeNews.Id), Times.Once);
        }
コード例 #4
0
ファイル: NewsController.cs プロジェクト: Ptize/NewsPortal
 public NewsController(INewsStorage newsStorage, NewsBuilder newsBuilder, CommentBuilder commentBuilder, ICommentStorage commentStorage)
 {
     _newsStorage    = newsStorage;
     _newsBuilder    = newsBuilder;
     _commentBuilder = commentBuilder;
     _commentStorage = commentStorage;
 }
コード例 #5
0
        public async Task UseCase_WhenNewsAuthorChangedAndNotExistsInDb_ReturnUpdatedNews()
        {
            var oldNews     = new NewsBuilder().Build();
            var fakeRequest = new NewsRequestBuilder(oldNews.Id)
                              .WithTitle("New Title")
                              .WithContent("New Content")
                              .WithAuthorUserName("*****@*****.**")
                              .BuildUpdate();

            var logger    = new Mock <ILogger <UpdateNewsUseCase> >().Object;
            var validator = ValidatorFactory.GetValidValidator <UpdateNewsRequest>();

            var newsRepositoryMock = new Mock <INewsRepository>();

            newsRepositoryMock.Setup(r => r.GetById(fakeRequest.Id)).ReturnsAsync(oldNews);
            var authorRepositoryMock = new Mock <IAuthorRepository>();

            var useCase  = new UpdateNewsUseCase(logger, validator, newsRepositoryMock.Object, authorRepositoryMock.Object);
            var response = await useCase.Execute(fakeRequest);

            response.Status.Should().Be(UseCaseResponseStatus.Success);
            response.Success().Should().BeTrue();

            newsRepositoryMock.Verify(r => r.GetById(fakeRequest.Id), Times.Once);
            newsRepositoryMock.Verify(r => r.Update(It.IsAny <Entities.News>()), Times.Once);
            authorRepositoryMock.Verify(r => r.GeyByUserName(fakeRequest.Author.UserName), Times.Once);
            authorRepositoryMock.Verify(r => r.Save(It.IsAny <Author>()), Times.Once);
        }
コード例 #6
0
        public async Task UseCase_WhenNewsNotExists_ReturnNotFoundError()
        {
            var oldNews     = new NewsBuilder().Build();
            var fakeRequest = new NewsRequestBuilder(Guid.NewGuid())
                              .WithTitle("New Title")
                              .WithContent("New Content")
                              .WithAuthorUserName("*****@*****.**")
                              .BuildUpdate();

            var logger    = new Mock <ILogger <UpdateNewsUseCase> >().Object;
            var validator = ValidatorFactory.GetValidValidator <UpdateNewsRequest>();

            var repositorymock       = new Mock <INewsRepository>();
            var authorRepositoryMock = new Mock <IAuthorRepository>();


            var useCase  = new UpdateNewsUseCase(logger, validator, repositorymock.Object, authorRepositoryMock.Object);
            var response = await useCase.Execute(fakeRequest);

            response.Status.Should().Be(UseCaseResponseStatus.ResourceNotFountError);
            response.Success().Should().BeFalse();

            repositorymock.Verify(r => r.GetById(fakeRequest.Id), Times.Once);
            repositorymock.Verify(r => r.Update(It.IsAny <Entities.News>()), Times.Never);
            authorRepositoryMock.Verify(r => r.GeyByUserName(fakeRequest.Author.UserName), Times.Never);
            authorRepositoryMock.Verify(r => r.Save(It.IsAny <Author>()), Times.Never);
        }
コード例 #7
0
ファイル: HomeController.cs プロジェクト: romulus0305/INI
        public ActionResult News()
        {
            var lngId = 1;

            if (Session["lngId"] != null)
            {
                lngId = (int)Session["lngId"];
            }

            NewsListModel model = NewsBuilder.BuildNews(Db);

            model.ContentRight = Db.Labels.Where(m => m.ViewId == "News" && m.ElementId == "ContentRight" && m.LanguageId == lngId).FirstOrDefault().Text;
            ViewBag.Link       = 4;
            return(View(model));
        }
コード例 #8
0
        public async Task UseCase_WhenOk_ResultNewsWithIdTitleAndContent()
        {
            var fakeNews = new NewsBuilder()
                           .WithThumbnailURL($"https://s3.amazonaws.com/bucketname/name.png")
                           .Build();

            var logger    = new Mock <ILogger <GetNewsByIdUseCase> >().Object;
            var validator = ValidatorFactory.GetValidValidator <Guid>();

            var repositoryMock = new Mock <INewsRepository>();

            repositoryMock.Setup(r => r.GetById(fakeNews.Id))
            .ReturnsAsync(fakeNews);

            var useCase  = new GetNewsByIdUseCase(logger, validator, repositoryMock.Object);
            var response = await useCase.Execute(fakeNews.Id);

            response.Status.Should().Be(UseCaseResponseStatus.Success);
            response.Result.Id.Should().Be(fakeNews.Id);
            response.Result.Title.Should().Be(fakeNews.Title);
            response.Result.Content.Should().Be(fakeNews.Content);
            response.Result.ThumbnailURL.Should().Be(fakeNews.ThumbnailURL);
            repositoryMock.Verify(r => r.GetById(fakeNews.Id), Times.Once);
        }
コード例 #9
0
ファイル: HomeController.cs プロジェクト: romulus0305/INI
        public JsonResult OpenCurrentNews()
        {
            IList <NewsModel> model = NewsBuilder.BuildCurrentNews(Db);

            return(Json(ResponseStatus.Success, RenderPartialViewToString("OpenNews", model)));
        }
コード例 #10
0
ファイル: HomeController.cs プロジェクト: romulus0305/INI
        public JsonResult OpenArchive(int ArchiveId)
        {
            IList <NewsModel> model = NewsBuilder.BuildArchivedNews(Db, ArchiveId);

            return(Json(ResponseStatus.Success, RenderPartialViewToString("OpenNews", model)));
        }
コード例 #11
0
ファイル: NewsController.cs プロジェクト: kel16/NewsPortal
 public NewsController(INewsStorage newsStorage, NewsBuilder newsBuilder)
 {
     _newsStorage = newsStorage;
     _newsBuilder = newsBuilder;
 }