Exemple #1
0
        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);
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #10
0
        // 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));
        }
Exemple #11
0
        // 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));
            }
        }
Exemple #12
0
        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));
        }
Exemple #21
0
        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
        }
Exemple #25
0
        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 }));
        }
Exemple #26
0
        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));
        }
Exemple #31
0
        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));
        }