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)); }
public ActionResult News() { NewsListModel model = NewsBuilder.BuildNews(Db); ViewBag.Link = 4; return(View(model)); }
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); }
public NewsController(INewsStorage newsStorage, NewsBuilder newsBuilder, CommentBuilder commentBuilder, ICommentStorage commentStorage) { _newsStorage = newsStorage; _newsBuilder = newsBuilder; _commentBuilder = commentBuilder; _commentStorage = commentStorage; }
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); }
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); }
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)); }
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); }
public JsonResult OpenCurrentNews() { IList <NewsModel> model = NewsBuilder.BuildCurrentNews(Db); return(Json(ResponseStatus.Success, RenderPartialViewToString("OpenNews", model))); }
public JsonResult OpenArchive(int ArchiveId) { IList <NewsModel> model = NewsBuilder.BuildArchivedNews(Db, ArchiveId); return(Json(ResponseStatus.Success, RenderPartialViewToString("OpenNews", model))); }
public NewsController(INewsStorage newsStorage, NewsBuilder newsBuilder) { _newsStorage = newsStorage; _newsBuilder = newsBuilder; }