/// <summary> /// 帖子管理列表 /// </summary> /// <returns></returns> // GET: /<controller>/ public IActionResult Index() { ViewModels.PostsViewModel model = new ViewModels.PostsViewModel(); //查询帖子数据 int pageIndex = Framework.Core.Transform.GetInt(Request.Query["p"], 1); int pageSize = 10; PostsRepository repository = new PostsRepository(); var query = repository.GetPostsPageList(); model.ListData = query.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList(); model.TotalCount = query.Count(); return(View(model)); }
// GET: Publicacao public ActionResult ListPosts() { Usuario usuario = (Usuario)Session["object"]; List <Publicacao> listPost = PostsRepository.ListAllPostsFromUser(usuario); List <Comentario> listComentarios = new List <Comentario>(); //foreach(var item in listPost) { // foreach(var coment in item.Comentario) { // listComentarios.Add(coment); // } //} return(View(listPost)); }
public void CreateRepository() { using (var context = new BlogContext()) { foreach (var post in context.Posts) { context.Posts.Remove(post); } context.Posts.Add(new Post {Titulo = "Ola!", Corpo = "Bem vindo!", Data = new DateTime(2012, 2, 3), Autor = "Giovanni Bassi"}); context.Posts.Add(new Post {Titulo = "Ola 2!", Corpo = "Bem vindo 2!", Data = new DateTime(2011, 2, 3), Autor = "Victor Cavalcante"}); context.SaveChanges(); } repository = new PostsRepository(); }
public async Task DataFlow_HardDeleteById_Test() { IPostsRepository postsRepository = new PostsRepository(); IoCManager.Resolver.InjectProperties(postsRepository); var findAllResult = await postsRepository.FindAll(); Assert.IsEmpty(findAllResult); var postCount = 0; var savedPosts = await postsRepository.SaveAll( new[] { new PostEntity { Title = $"{postCount}", Content = $"{postCount++}" }, new PostEntity { Title = $"{postCount}", Content = $"{postCount++}" }, new PostEntity { Title = $"{postCount}", Content = $"{postCount++}" }, }); Assert.IsNotNull(savedPosts); Assert.IsNotEmpty(savedPosts); Assert.AreEqual(postCount, savedPosts.Count); foreach (var postEntity in savedPosts) { Assert.IsFalse(postEntity.IsDeleted); } var secondPost = savedPosts[1]; await postsRepository.DeleteById(secondPost.PostId, softDelete : false); var foundPosts = await postsRepository.FindAll(); Assert.IsNotNull(foundPosts); Assert.IsNotEmpty(foundPosts); Assert.AreEqual(postCount - 1, foundPosts.Count); foreach (var postEntity in foundPosts) { Assert.IsFalse(postEntity.IsDeleted); } }
public ActionResult AddCommentToPublishedPost(Guid postId, DisplayPublishedPostViewModel model) { if (ModelState.IsValid) { var postsRepository = new PostsRepository(MvcApplication.MongoDatabase); var post = postsRepository.Find(postId); post.AddComment(model.NewComment.Author, model.NewComment.Comment); postsRepository.Save(post); } return RedirectToRoute("Posts.DisplayPublishedPost", new { postId }); }
public UnitOfWork(BlogDbContext context) { this.context = context; CategoriesRepository = new CategoriesRepository(context); PostsRepository = new PostsRepository(context); PostsFetcher = new PostsFetcher(context); TagsRepository = new TagsRepository(context); CommentsFetcher = new CommentsFetcher(context); CommentsRepository = new CommentsRepository(context); PollsRepository = new PollsRepository(context); PollAnswersRepository = new PollAnswersRepository(context); PostPhotosRepository = new PostPhotosRepository(context); PollsFetcher = new PollsFetcher(context); VotesRepository = new VotesRepository(context); }
public ActionResult FinalizedPosts() { var postsQuery = PostsRepository.GetByStatus(PostStatus.Finalized); return(Ok(new ListModel { Posts = postsQuery.Select(p => new ListModel.PostModel { Description = p.Description, Id = p.Id, Title = p.Title, PrimaryImageUrl = p.ImageUrls.First() }) })); }
public ActionResult Details(int id) { var post = PostsRepository.GetById(id, p => new DetailsModel { Id = p.Id, Title = p.Title, Description = p.Description, ImageUrls = p.ImageUrls, CreatedAt = p.Edited ? p.CreatedAt : (DateTime?)null, Edited = p.Edited, EditedAt = p.Edited ? p.UpdatedAt : (DateTime?)null }); return(Ok(post)); }
public ActionResult AddCommentToPublishedPost(Guid postId, DisplayPublishedPostViewModel model) { if (ModelState.IsValid) { var postsRepository = new PostsRepository(MvcApplication.MongoDatabase); var post = postsRepository.Find(postId); post.AddComment(model.NewComment.Author, model.NewComment.Comment); postsRepository.Save(post); } return(RedirectToRoute("Posts.DisplayPublishedPost", new { postId })); }
/// <summary> /// 首页 /// </summary> /// <returns></returns> public IActionResult Index() { ViewModels.HomeViewModel viewModel = new ViewModels.HomeViewModel(); int pageSize = 5; //加载帖子数据 PostsRepository repository = new PostsRepository(); var query = repository.GetPostsPageList(); viewModel.PostsDatas = query.Where(m => m.IsShow == true).Take(pageSize).ToList(); //加载文档主题数据 DocsRepository docsRepository = new DocsRepository(); viewModel.DocsDatas = docsRepository.GetDocsByPage().OrderByDescending(m => m.DocsId).Where(m => m.IsShow == true).Take(pageSize).ToList(); return(View(viewModel)); }
// GET: /<controller>/ public IActionResult Index() { ViewModels.UserPostsViewModel model = new ViewModels.UserPostsViewModel(); //查询帖子数据 if (HttpContext.Session.GetString("UserId") != null) { int pageIndex = Framework.Core.Transform.GetInt(Request.Query["p"], 1); int pageSize = 10; int userId = Framework.Core.Transform.GetInt(HttpContext.Session.GetString("UserId"), 0); PostsRepository repository = new PostsRepository(); var query = repository.GetPostsPageList(); model.ListData = query.Where(m => m.UserId == userId).Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList(); model.TotalCount = query.Count(); } return(View(model)); }
public ActionResult LikePost(int id) { var resultado = PostsRepository.SelectPost(id); if (CurtidasPostsRepository.ChecarCurtidaPost(resultado) == false) { PostsRepository.LikePost(resultado); CurtidasPostsRepository.AddCurtidaPostBanco(resultado); } else { PostsRepository.DislikePost(resultado); CurtidasPostsRepository.DeleteCurtidaPostBanco(resultado); } return(RedirectToAction("ListPosts", "Publicacao")); }
// GET: Publicacao/Delete/5 public ActionResult DeletePost(int id) { try { CurtidasPostsRepository.DeleteAllCurtidasPost(PostsRepository.SelectPost(id)); ComentariosRepository.DeleteAllComentariosDoPost(PostsRepository.SelectPost(id)); PostsRepository.DeletePost(id); Usuario sessao = (Usuario)Session["object"]; Session["object"] = UsuariosRepository.SelectUsuario(sessao.Id); TempData["alert"] = "Post Deletado"; return(RedirectToAction("ListPosts")); //return RedirectToAction("ListPosts", "Post"); } catch { return(View("Error")); } }
public async Task Should_results_be_paged(int total, int page, int qtd) { var fixture = new Fixture(); var posts_result = Enumerable.Range(0, total) .Select(e => fixture.Create <Post>()) .ToList(); var rssReader = A.Fake <IRssPostReader>(); A.CallTo(() => rssReader.ReadPostsAsync(A <string> ._, A <DateTime> ._)).Returns(posts_result); var repository = new PostsRepository(rssReader, DateTime.MinValue, fixture.Create <string>()); var posts = await repository.GetPagedPosts(page, qtd, null); posts.Should().HaveCount(qtd); posts_result.IndexOf(posts.First()).Should().Be((page - 1) * qtd); }
public async Task WhenPostIsSavedThenItShouldInsertNewEntry() { var blogContext = new BlogContext(dbContextOptions); PostsRepository repository = new PostsRepository(blogContext); var newPost = new Post() { Id = 0, Title = "This is Post Title", Summary = "This is summary", PostContents = "This represents contents of the post", Slug = "some-slug", IsPublished = true }; await repository.CreateAsync(newPost); Assert.Equal(1, await blogContext.Posts.CountAsync()); }
public ActionResult Index() { PostIndexVM model = new PostIndexVM(); PostsRepository repo = new PostsRepository(); SubRedditsRepository subRedditsRepository = new SubRedditsRepository(); model.Posts = repo.GetAll(p => p.IsApproved == true).OrderByDescending(a => a.Rating).ToList(); model.TrendingSubReddits = subRedditsRepository.GetAll(null); if (AuthManager.LoggedUser != null) { model.SubReddits = subRedditsRepository.GetAll(null) .Where(x => x.SubscribedUsers.Any(b => b.Id == AuthManager.LoggedUser.Id)).OrderByDescending(c => c.Id).ToList(); } else { model.SubReddits = subRedditsRepository.GetAll(null); } return(View(model)); }
public ViewModels.PostsViewModel LoadMainData(int id) { ViewModels.PostsViewModel model = new ViewModels.PostsViewModel(); //查询帖子数据 int pageIndex = Framework.Core.Transform.GetInt(Request.Query["p"], 1); int pageSize = 10; PostsRepository repository = new PostsRepository(); var query = repository.GetPostsPageList(); model.ListData = query.Where(m => (id > 0 ? m.ChannelId == id : m.ChannelId > 0) && m.IsShow == true).Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList(); model.TotalCount = query.Where(m => (id > 0 ? m.ChannelId == id : m.ChannelId > 0) && m.IsShow == true).Count(); //加载帖子频道 Common.PostsChannel postsProperty = new Common.PostsChannel(); model.PostsChannelData = postsProperty.GetListByCache(); //加载热门帖子 model.HotListData = query.OrderByDescending(m => m.ReadCount).Where(m => m.PostDate >= DateTime.Now.AddDays(-7)).Skip(0).Take(10).ToList(); return(model); }
public ActionResult CompartilharPost(int id) { try { Usuario sessao = (Usuario)Session["object"]; Post post = PostsRepository.SelectPost(id); post.IdUsuario = sessao.Id; post.IdPostOrigem = id; PostsRepository.CompartilharPost(post); Session["object"] = UsuariosRepository.SelectUsuario(sessao.Id); TempData["alert"] = "Post Compartilhado"; return(RedirectToAction("Welcome", "Usuario")); } catch { return(View("Error")); } }
public void GetList_Retrieves_From_Database() { var options = GetInMemoryOptions(); // run "Create" RunDbContext(options, async context => { var repository = new PostsRepository(context); await repository.Create(EntityBuilder.CreatePostEntity()); await repository.Create(EntityBuilder.CreatePostEntity()); }); // assert from another context RunDbContext(options, async context => { var getListResult = await new PostsRepository(context).GetList(); Assert.Equal(2, getListResult.Count); }); }
public IActionResult AddLikes(int id) { var repo = new PostsRepository(_connectionString); List <int> likes = HttpContext.Session.Get <List <int> >("Likes"); if (likes == null) { likes = new List <int>(); } else if (likes.Contains(id)) { return(null); } likes.Add(id); HttpContext.Session.Set("Likes", likes); var post = repo.GetById(id); repo.AddLike(id); return(Json(post)); }
// GET: Comments public ActionResult Index(IndexVM model, int?PostId) { if (PostId != null) { model.PostId = (int)PostId; } CommentsRepository repo = new CommentsRepository(); model.Items = repo.GetAll(m => m.PostId == model.PostId); PostsRepository postsRepo = new PostsRepository(); model.Post = postsRepo.GetById(model.PostId); UsersRepository usersRepo = new UsersRepository(); model.User = usersRepo.GetById(model.UserId); return(View(model)); }
public async void AddPost_CheckCallOfAddMethodInDbSet() { var mockDbContext = new Mock <EntityModels.DatabaseContext>(); var mockDbSetPosts = new Mock <DbSet <Post> >(); mockDbSetPosts .Setup(a => a.Add(new Post())) .Returns( () => { Assert.True(true); return(null); }); mockDbContext.Setup(a => a.Posts).Returns(mockDbSetPosts.Object); var postsRepo = new PostsRepository(mockDbContext.Object); await postsRepo.AddPost(new DomainModels.Post() { Author = new DomainModels.User() }); }
public ActionResult VerPostOriginal(int id) { try { Usuario sessao = (Usuario)Session["object"]; Post post = PostsRepository.SelectPost(id); if (post.IdPost > 0) { Session["object"] = UsuariosRepository.SelectUsuario(sessao.Id); return(View(post)); } else { Session["object"] = UsuariosRepository.SelectUsuario(sessao.Id); return(View("PostJaDeletado")); } } catch { return(View("Error")); } }
public ActionResult EditPost(Post post, FormCollection collection, HttpPostedFileBase file) { try { // TODO: Add update logic here if (file != null) { PostsRepository.EditPost(post, file); } else { PostsRepository.EditPostSemMudarImagem(post); } Usuario sessao = (Usuario)Session["object"]; Session["object"] = UsuariosRepository.SelectUsuario(sessao.Id); return(RedirectToAction("ListPosts", "Post")); } catch { return(View("Error")); } }
public IActionResult Edit(int id) { ViewModels.PostsEditViewModel model = new ViewModels.PostsEditViewModel(); int postsId = id; int userId = Framework.Core.Transform.GetInt(HttpContext.Session.GetString("UserId"), 0); //加载帖子数据 PostsRepository repository = new PostsRepository(); model.PostsData = repository.GetPostsByEdit(postsId, userId); if (model.PostsData != null) { //加载帖子频道数据 Common.PostsChannel postsProperty = new Common.PostsChannel(); model.PostsChannels = postsProperty.GetListByCache(); return(View(model)); } return(new ContentResult() { Content = "您的请求未得到授权!", StatusCode = 401 }); }
/// <summary> /// 帖子内容阅读 /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult Read(string id) { int postsId = Framework.Core.Transform.GetInt(id, 0); ViewModels.PostsReadViewModel model = new ViewModels.PostsReadViewModel(); if (postsId != 0) { PostsRepository repository = new PostsRepository(); model.PostsData = repository.GetPosts(postsId)[0]; int pageSize = 10; int pageIndex = Framework.Core.Transform.GetInt(Request.Query["p"], 1); var query = repository.GetAnswerPageList(); model.AnswerListData = query.Where(m => m.PostsId == postsId).Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList(); model.TotalCount = query.Where(m => m.PostsId == postsId).Count(); //加载帖子频道 Common.PostsChannel postsProperty = new Common.PostsChannel(); model.PostsChannelData = postsProperty.GetListByCache(); //加载热门帖子 model.HotListData = repository.GetPostsListByHot().OrderByDescending(m => m.PlusCount).Where(m => m.PostDate >= DateTime.Now.AddDays(-7)).Skip(0).Take(10).ToList(); } return(View(model)); }
public async Task Should_results_be_filtered_by_userName() { var fixture = new Fixture(); Post Create(string authorName) { var post = fixture.Build <Post>().Without(e => e.Author).Create(); post.Author = authorName; return(post); }; var posts_result = new[] { Create("Lucas"), Create("Bob"), Create("Lucas"), Create("Jonas"), Create("lucas"), Create("Michal"), Create("Lucas "), Create("Ruan"), Create("Mudi"), Create("LUCAS") }; var rssReader = A.Fake <IRssPostReader>(); A.CallTo(() => rssReader.ReadPostsAsync(A <string> ._, A <DateTime> ._)).Returns(posts_result); var repository = new PostsRepository(rssReader, DateTime.MinValue, fixture.Create <string>()); var posts = await repository.GetPagedPosts(1, 10, "Lucas"); posts.Should().HaveCount(5); posts.Should().OnlyContain(e => e.Author.ToLowerInvariant().Contains("lucas")); }
public ActionResult GetAll(string subject, string category, string kind, int id, string dateFrom, string dateTo, string sortdatafield, string sortorder, int pagesize, int pagenum) { var fromDate = string.IsNullOrEmpty(dateFrom) ? DateTime.MinValue : (new DateTime(int.Parse(dateFrom.Split('.')[0]), int.Parse(dateFrom.Split('.')[1]), int.Parse(dateFrom.Split('.')[2]))); var toDate = string.IsNullOrEmpty(dateTo) ? DateTime.MaxValue : ((new DateTime(int.Parse(dateTo.Split('.')[0]), int.Parse(dateTo.Split('.')[1]), int.Parse(dateTo.Split('.')[2])))); string empId = User.GetClaimValue(ClaimTypes.PrimarySid); var repository = new PostsRepository(); var list = repository.GetAll(string.IsNullOrEmpty(subject) ? null : subject, string.IsNullOrEmpty(category) ? null : category, string.IsNullOrEmpty(kind) ? null : kind, empId, id, fromDate, toDate); var total = list.Count(); if (!string.IsNullOrEmpty(sortorder)) { list = sortorder == "asc" ? list.OrderBy(o => o.GetType().GetProperty(sortdatafield).GetValue(o, null)) : list.OrderByDescending(o => o.GetType().GetProperty(sortdatafield).GetValue(o, null)); } list = list.Skip(pagesize * pagenum).Take(pagesize); var result = new { TotalRows = total, Rows = list }; return(Json(result, JsonRequestBehavior.AllowGet)); }
public async Task DataFlow_InsertPostEntity_Test() { IPostsRepository postsRepository = new PostsRepository(); IoCManager.Resolver.InjectProperties(postsRepository); var findAllResult = await postsRepository.FindAll(); Assert.IsEmpty(findAllResult); var samplePost1 = new PostEntity { Title = Post1Title1, Content = Post1Content1 }; Assert.AreEqual(0, samplePost1.PostId); samplePost1 = await postsRepository.Save(samplePost1); Assert.AreNotEqual(0, samplePost1.PostId); findAllResult = await postsRepository.FindAll(); Assert.IsNotEmpty(findAllResult); Assert.AreEqual(1, findAllResult.Count); var postFound = await postsRepository.FindById(1); Assert.IsNotNull(postFound); Assert.IsNotNull(postFound.PostId); Assert.AreEqual(1, postFound.PostId); Assert.AreEqual(Post1Title1, postFound.Title); Assert.AreEqual(Post1Content1, postFound.Content); Assert.ThrowsAsync <GrException>(() => postsRepository.FindById(1000)); }
public void Given_Posts_When_NewPostIsAdded_Then_ShouldHaveOnePostInDatabase() { RunOnDatabase(async context => { // ARRANGE var postsRepository = new PostsRepository(context, _loggerFactory); var post = await postsRepository.InsertPostAsync(new Post { City = "Test city", Country = "Test country", Description = "Description", Domain = "Domain", FirstName = "FirstName", Gender = "Male", Id = 10, PostDate = new DateTime(2010, 10, 2), LastName = "LastName", UploadedSong = null }); // ACT var result = postsRepository.GetPostAsync(post.Id); // ASSERT result.Should().NotBe(null); }); }
public PostsController() { _repository = new PostsRepository(); }
public PostsService(PostsRepository repo) { _repo = repo; }