public ActionResult Create(Comment comment) { comment.Date = DateTime.Now; var commentList = db.Comments.Where(c => c.ArticleId == comment.ArticleId).ToList(); var viewModel = new ArticleDetailsViewModel { CommentsList = commentList }; if (!ModelState.IsValid) { return(PartialView("_ArticleComments", viewModel)); } db.Comments.Add(comment); db.SaveChanges(); var updatedCommentList = db.Comments.Where(c => c.ArticleId == comment.ArticleId).ToList(); viewModel = new ArticleDetailsViewModel { CommentsList = updatedCommentList }; return(PartialView("_ArticleComments", viewModel)); }
public ArticleDetailsViewModel GetDetails(int id, string userId) { var article = this.Context .Articles .FirstOrDefault(a => a.Id == id); if (article == null) { return(null); } var author = this.Context .Users .FirstOrDefault(u => u.Id == article.AuthorId); var hasVoted = this.Context .UsersArticles .Any(ua => ua.ArticleId == article.Id && ua.UserId == userId); var articleModel = new ArticleDetailsViewModel { Id = article.Id, Title = article.Title, Content = article.Content, Author = author.UserName, CreatedOn = article.CreatedOn, Upvotes = article.Upvotes, ImageUrl = article.ImageUrl, HasVoted = hasVoted }; return(articleModel); }
public async Task <ArticleDetailsViewModel> GetArticleById(string id) { ArticleDetailsViewModel article = await this.context.Articles.To <ArticleDetailsViewModel>() .SingleOrDefaultAsync(a => a.Id == id); return(article); }
public async Task <IActionResult> Details(Guid id) { if (!await _articlesRepository.IsExist(id)) { return(NotFound()); } var article = await _articlesRepository.GetByIdIncludeAuthor(id); var userId = GetCurrentUserId(); var isOwner = article.AuthorId == userId; //dont show article if user is not article owner and article is private if (!article.IsPublic && !isOwner) { return(NotFound()); } var model = new ArticleDetailsViewModel { Article = article, IsOwner = isOwner }; return(View(model)); }
public async Task <IActionResult> Article(int id) { Article article = await _newsRepository.GetByIdAsync(id); IdentityUser author = await _userManager.FindByIdAsync(article.AuthorId); IdentityUser loggedUser = await _userManager.FindByNameAsync(User.Identity.Name); List <ArticleComment> comments = article.Comments .Select(c => new ArticleComment(c.Text, c.Username, c.CreatedOn)) .OrderBy(c => c.CreatedOn) .ToList(); var model = new ArticleDetailsViewModel { Id = article.Id, Title = article.Title, Body = article.Body, PublishDate = article.PublishDate, Author = author.UserName, LikedByMe = article.Likes.Any(l => l.UserId == loggedUser.Id), LikesCount = article.Likes.Count, Comments = comments }; return(View(model)); }
// GET: /article/details/1 public async Task<ActionResult> Details(int? id) { if (id == null) { return this.HttpNotFound(); } var response = await this.articleService.GetArticleAsync(new GetArticleRequest { ArticleId = (int)id }); if (response.Status == StatusCode.OK) { var article = new ArticleDetailsViewModel { Article = response.Article }; return View(article); } else if (response.Status == StatusCode.NotFound) { return this.HttpNotFound(); } else { return new HttpStatusCodeResult(HttpStatusCode.InternalServerError); } }
public void ReturnPartialViewWithCorrectModel_WhenInputParamsAreValid() { // Arrange var articleServiceMock = new Mock <IArticleService>(); var mappingServiceMock = new Mock <IMappingService>(); var storeServiceMock = new Mock <IStoreService>(); var userServiceMock = new Mock <IUserService>(); var utilsMock = new Mock <IUtilitiesService>(); var controller = new ArticlesController(articleServiceMock.Object, mappingServiceMock.Object, storeServiceMock.Object, userServiceMock.Object, utilsMock.Object); var controllerContext = new Mock <ControllerContext>(); var user = new Mock <IPrincipal>(); user.Setup(p => p.IsInRole("admin")).Returns(true); user.SetupGet(x => x.Identity.Name).Returns("username"); controllerContext.SetupGet(x => x.HttpContext.User).Returns(user.Object); controller.ControllerContext = controllerContext.Object; var userModel = new User(); var article = new Article(); var model = new ArticleDetailsViewModel(); articleServiceMock.Setup(x => x.DeleteComment(It.IsAny <string>())); userServiceMock.Setup(x => x.GetById(It.IsAny <string>())).Returns(userModel); articleServiceMock.Setup(x => x.GetArticleById(It.IsAny <Guid>())).Returns(article); mappingServiceMock.Setup(x => x.Map <ArticleDetailsViewModel>(article)).Returns(model); // Act & Assert controller.WithCallTo(x => x.DeleteComment(Guid.NewGuid(), "id")) .ShouldRenderPartialView("_CommentBoxPartial") .WithModel <ArticleDetailsViewModel>(x => x == model); }
public void RenderDefaultViewWithCorrectViewModek_WhenPassedIdIsValid() { // Arrange var articleServiceMock = new Mock <IArticleService>(); var mappingServiceMock = new Mock <IMappingService>(); var storeServiceMock = new Mock <IStoreService>(); var userServiceMock = new Mock <IUserService>(); var utilsMock = new Mock <IUtilitiesService>(); var controller = new ArticlesController(articleServiceMock.Object, mappingServiceMock.Object, storeServiceMock.Object, userServiceMock.Object, utilsMock.Object); var controllerContextMock = new Mock <ControllerContext>(); var user = new Mock <IPrincipal>(); user.Setup(p => p.IsInRole("admin")).Returns(true); user.SetupGet(x => x.Identity.Name).Returns("username"); controllerContextMock.SetupGet(x => x.HttpContext.User).Returns(user.Object); controller.ControllerContext = controllerContextMock.Object; var id = Guid.NewGuid(); var userModel = new User(); var article = new Article(); var storeItems = new List <StoreItem>(); var model = new ArticleDetailsViewModel(); userServiceMock.Setup(x => x.GetById(It.IsAny <string>())).Returns(userModel); articleServiceMock.Setup(x => x.GetArticleById(It.IsAny <Guid>())).Returns(article); storeServiceMock.Setup(x => x.GetItemsByKeyword(It.IsAny <string>())).Returns(storeItems); mappingServiceMock.Setup(x => x.Map <ArticleDetailsViewModel>(It.IsAny <Article>())).Returns(model); // Act & Assert controller.WithCallTo(x => x.Details(id)) .ShouldRenderDefaultView() .WithModel <ArticleDetailsViewModel>(x => x == model); }
public void CallGetUserByIdMethod_WhenInputParamsAreValid() { // Arrange var articleServiceMock = new Mock <IArticleService>(); var mappingServiceMock = new Mock <IMappingService>(); var storeServiceMock = new Mock <IStoreService>(); var userServiceMock = new Mock <IUserService>(); var utilsMock = new Mock <IUtilitiesService>(); var controller = new ArticlesController(articleServiceMock.Object, mappingServiceMock.Object, storeServiceMock.Object, userServiceMock.Object, utilsMock.Object); var controllerContext = new Mock <ControllerContext>(); var user = new Mock <IPrincipal>(); user.Setup(p => p.IsInRole("admin")).Returns(true); user.SetupGet(x => x.Identity.Name).Returns("username"); controllerContext.SetupGet(x => x.HttpContext.User).Returns(user.Object); controller.ControllerContext = controllerContext.Object; var userModel = new User(); var article = new Article(); var model = new ArticleDetailsViewModel(); articleServiceMock.Setup(x => x.DeleteComment(It.IsAny <string>())); userServiceMock.Setup(x => x.GetById(It.IsAny <string>())).Returns(userModel); articleServiceMock.Setup(x => x.GetArticleById(It.IsAny <Guid>())).Returns(article); mappingServiceMock.Setup(x => x.Map <ArticleDetailsViewModel>(article)).Returns(model); // Act controller.DeleteComment(Guid.NewGuid(), "some id"); // Assert userServiceMock.Verify(x => x.GetById(It.IsAny <string>()), Times.Once); }
// GET: Articles/Details/5 public ActionResult Details(int?id) { if (id == null) { return(HttpNotFound()); } var article = db.Articles.Include(a => a.Author).Include(a => a.Category).SingleOrDefault(a => a.Id == id); if (article == null) { return(HttpNotFound()); } var comments = db.Comments.Where(c => c.ArticleId == article.Id).ToList(); if (article == null) { return(HttpNotFound()); } var ViewModel = new ArticleDetailsViewModel { Article = article, ArticleId = article.Id, CommentsList = comments }; return(View(ViewModel)); }
// GET: /article/details/1 public async Task <ActionResult> Details(int?id) { if (id == null) { return(this.HttpNotFound()); } var response = await this.articleService.GetArticleAsync(new GetArticleRequest { ArticleId = (int)id }); if (response.Status == StatusCode.OK) { var article = new ArticleDetailsViewModel { Article = response.Article }; return(View(article)); } else if (response.Status == StatusCode.NotFound) { return(this.HttpNotFound()); } else { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } }
public ArticleDetailsView(StateController stateController, ArticleViewModel viewModel) { BindingContext = new ArticleDetailsViewModel(stateController, viewModel); InitializeComponent(); ListViewHelper.DisableItemSelectedAction(listView); }
// GET: Article/Details/5 public ActionResult Details(int id) { var viewModel = new ArticleDetailsViewModel { Article = _articleRepository.Get(id), ArticlePhoto = _articlePhotoRepository.GetByArticleId(id), ArticleCategories = _articleCategoryRepository.GetAll().ToList(), ArticleComments = _articleCommentRepository.GetAllForArticle(id).ToList() }; return(View(viewModel)); }
public void Setup() { Article article = new Article(); _stateController = StateControllerMockGenerator.GenerateMock(); ArticleViewModel articleViewModel = new ArticleViewModel(_stateController, article); _vm = new ArticleDetailsViewModel(_stateController, articleViewModel); }
public async Task <IActionResult> Details(string id) { if (id == null) { return(NotFound()); } ArticleDetailsViewModel articleViewModel = (await this.articlesService.GetArticleById(id)).To <ArticleDetailsViewModel>(); return(this.View(articleViewModel)); }
public void Add(ArticleDetailsViewModel viewModel) { if (viewModel != null && viewModel.NewComment.ArticleId != 0) { var comment = viewModel.NewComment; comment.DateOfPublish = DateTime.Now; _context.ArticleComments.Add(comment); _context.SaveChanges(); } }
public IActionResult DeleteArticle(int id) { ArticleDetailsViewModel article = this.articleService.GetArticle(id); if (article == null) { return(RedirectToAction(RedirectConstants.IndexSuffix)); } return(this.View(article)); }
public IActionResult Details(int?id) { if (id == null) { return(RedirectToAction("Index")); } ArticleDetailsViewModel viewModel = this.articleService.GetByIdForDetails(id); return(View(viewModel)); }
public ViewResult Article(int id, String returnUri, String category = null, String searchText = null) { Article article = articleRepository.GetArticleById(id); ArticleDetailsViewModel model = new ArticleDetailsViewModel(category, searchText) { Article = article, ReturnUri = returnUri, }; return(View(model)); }
public ActionResult Details(int id) { ArticleDetailsViewModel model = this.articles.GetDisplayModel(id); if (model == null) { return(this.RedirectToAllCategories()); } return(this.View(model)); }
public async Task <IActionResult> Delete(int id) { Article article = await _articleRep.FindByIDAsync(id); if (article == null) { return(NotFound()); } ArticleDetailsViewModel model = new ArticleDetailsViewModel(article); return(View(model)); }
public ActionResult ManageDetails(int?id) { ArticleDetailsViewModel articleDetails = new ArticleDetailsViewModel { Article = _articleService.Find(id) }; if (articleDetails.Article == null) { return(NotFound()); } return(View(articleDetails)); }
public void ShouldSupportMappingFromSourceToDestination() { //Arrange Article article = new Article("title", "content", "user_id"); //Act ArticleDetailsViewModel model = this.mapper.Map <Article, ArticleDetailsViewModel>(article); //Assert Assert.Equal(article.Content, model.Content); Assert.Equal(article.Title, model.Title); Assert.Equal(article.CreatedBy, model.CreatedBy); }
public ArticleDetailsView(ArticleEventItem articleEventItem) { BindingContext = new ArticleDetailsViewModel(articleEventItem); InitializeComponent(); if (articleEventItem.Type == ArticleType.Article) { WatermarkGrid.IsVisible = false; } else { AuthorNameLabel.IsVisible = false; } NavigationPage.SetHasNavigationBar(this, false);//скрыть ActionBar }
public async Task <ActionResult> AddComment(ArticleDetailsViewModel viewModel) { if (!ModelState.IsValid) { return(RedirectToAction("Details", new { Id = viewModel.Article.Id })); } var comment = viewModel.PostCommentModel; comment.ParentArticleId = viewModel.Article.Id; await Mediator.Send(new AddCommentCommand(comment)); return(RedirectToAction("Details", new { id = viewModel.Article.Id })); }
public ArticleDetailsViewModel BuildArticleModel(int id, string?userId) { var article = _articleService.Get(id); var user = _adminService.Get(userId); List <Comment> comments = _commentService.GetAllForArticle(id); ArticleDetailsViewModel model = new ArticleDetailsViewModel(); model.Article = article; model.Comments = comments; model.AspNetUser = user; return(model); }
public ActionResult Details(string id) { id = HttpUtility.UrlDecode(id); DataServiceMessage <ArticleDetailsDTO> serviceMessage = articleService.GetDetails(id); if (serviceMessage.Succeeded) { ArticleDetailsViewModel model = Mapper.Map <ArticleDetailsDTO, ArticleDetailsViewModel>(serviceMessage.Data); return(ActionResultDependingOnGetRequest(model)); } else { return(Error(serviceMessage.Errors)); } }
public ActionResult Details(int?id) { ArticleDetailsViewModel articleDetails = new ArticleDetailsViewModel { Article = _articleService.FindActive(id), RecentGames = _gameService.GetComingGames(), RecentReviews = _reviewService.GetRecentReviews(), BestRatedGames = _gameService.GetOrderedGamesRanking(3) }; if (articleDetails.Article == null) { return(NotFound()); } return(View(articleDetails)); }
public IActionResult ArticleDetails(int id) { Article article = this.BlogService.GetArticle(id); if (article == null) { return(RedirectToAction("Index", "Blog")); } ArticleDetailsViewModel viewModel = mapper.Map <ArticleDetailsViewModel>(article); viewModel.Comments = this.CommentService.GetArticleComments(article.Id); viewModel.Cloudinary = this.cloudinaryService.GetCloudinaryInstance(); return(this.View(viewModel)); }
public async Task <IActionResult> Details(int id) { var article = await this.articleService.GetByIdAsync(id); var model = new ArticleDetailsViewModel { Id = id, Title = article.Title, Content = article.Content, PublishDate = article.PublishDate, Author = article.Author, Comments = await this.commentService.GetAllCommentsAsync(id), }; return(this.ViewOrNotFound(model)); }
public IActionResult ArticleDetails(int id, ArticleDetailsViewModel articleDetailsViewModel) { var article = this.BlogService.GetArticle(id); if (article == null) { return(RedirectToAction("Index", "Blog")); } articleDetailsViewModel.Article = article; articleDetailsViewModel.ArticleContent = this.BlogService.DownloadArticleContent(article.ArticleContentFileName); articleDetailsViewModel.Comments = this.CommentService.GetArticleComments(article.Id); return(this.View(articleDetailsViewModel)); }