Exemple #1
0
        public ActionResult Index(IndexVM model, int?SubRedditId)
        {
            if (SubRedditId != null)
            {
                model.SubRedditId = (int)SubRedditId;
            }
            PostsRepository repo = new PostsRepository();

            if (AuthManager.LoggedUser != null && AuthManager.LoggedUser.AdminToSubReddits.Any(sr => sr.Id == model.SubRedditId))
            {
                model.Posts = repo.GetAll(m => m.SubRedditId == model.SubRedditId).OrderByDescending(a => a.Rating).ToList();
            }
            else
            {
                model.Posts = repo.GetAll(m => m.SubRedditId == model.SubRedditId && m.IsApproved == true).OrderByDescending(a => a.Rating).ToList();
            }

            UsersRepository usersRepo = new UsersRepository();

            model.User = usersRepo.GetById(model.UserId);

            SubRedditsRepository subRedditsRepo = new SubRedditsRepository();

            model.SubReddit = subRedditsRepo.GetById(model.SubRedditId);

            return(View(model));
        }
Exemple #2
0
 public IEnumerable <PostsDTO> GetAllPostsService()
 {
     return(postsRepository.GetAll().Select(x => new PostsDTO
     {
         PostId = x.PostId,
         PostCategoryId = x.PostCategoryId,
         PostTitle = x.PostTitle,
         PostDiscription = x.PostDiscription,
         PostPhoto = x.PostPhoto
     }).ToList());
 }
        public void should_retrieve_all_posts()
        {
            // Arrange
            var mockPosts = PostsHelper.GetDefaultMockData();
            var db        = new InMemoryDatabase();

            db.Insert <Post>(mockPosts);
            _connectionFactory.GetConnection().Returns(db.OpenConnection());

            // Act
            var posts     = _sut.GetAll();
            var postsList = posts.ToList();

            // Assert
            Assert.IsNotNull(posts);
            Assert.AreEqual(posts.Count(), mockPosts.Count);

            mockPosts = mockPosts.OrderBy(o => o.Id).ToList();
            postsList = postsList.OrderBy(o => o.Id).ToList();

            for (var i = 0; i < mockPosts.Count; i++)
            {
                var mockPost = mockPosts[0];
                var post     = postsList[0];
                Assert.IsTrue(mockPost.Id == post.Id);
                Assert.IsTrue(mockPost.Title == post.Title);
                Assert.IsTrue(mockPost.Text == post.Text);
            }
        }
Exemple #4
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            SubRedditsRepository repo            = new SubRedditsRepository();
            PostsRepository      postsRepository = new PostsRepository();
            UsersRepository      usersRepository = new UsersRepository();

            List <SubReddit> items = repo.GetAll(null);
            List <Post>      posts = postsRepository.GetAll(null);
            List <User>      users = usersRepository.GetAll(null);

            foreach (SubReddit sr in items)
            {
                routes.MapRoute(
                    name: "SubReddit" + sr.Id,
                    url: "r/" + sr.Name,
                    defaults: new { controller = "Posts", action = "Index", SubRedditId = sr.Id });

                /*foreach (Post item in posts.Where(a => a.SubRedditId==sr.Id))
                 * {
                 *  routes.MapRoute(
                 *  name: "Post" + item.Id,
                 *  url: "r/" + sr.Name +"/" + "comments"+ '/' + getTitleForURL(item.Title.ToLower()),
                 *  defaults: new { controller = "Comments", action = "Index", PostId = item.Id });
                 * }*/
            }
            foreach (User item in users)
            {
                routes.MapRoute(
                    name: "Profile" + item.Id,
                    url: "user/" + item.Username,
                    defaults: new { controller = "Profile", action = "Index", UserId = item.Id }
                    );
            }

            /*foreach (var item in Reddit.Models.AuthManager.LoggedUser.SubscribedToSubReddits)
             * {
             *  routes.MapRoute(
             *  name: "Something" ,
             *  url: "r/" + item.Name + "/submit",
             *  defaults: new { controller = "Posts", action = "Create", id = UrlParameter.Optional }
             *   );
             * }
             *
             * string allOrHome = "";
             * if (Reddit.Models.AuthManager.LoggedUser != null) allOrHome = "r/home";
             * else allOrHome = "r/all";
             * routes.MapRoute(
             * name: "allHome",
             * url: allOrHome,
             * defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
             * );*/
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
        }
        public ActionResult Edit(int id)
        {
            var empId = User.GetClaimValue(ClaimTypes.PrimarySid);

            var repository = new PostsRepository();
            var item       = repository.GetAll(null, null, null, empId, id, null, null).FirstOrDefault();

            return(View(item));
        }
Exemple #6
0
        public ActionResult Search(SearchVM model, int?postId, int?subredditId)
        {
            model.SubReddits = new List <SubReddit>();
            model.Users      = new List <User>();
            SubRedditsRepository subRepo  = new SubRedditsRepository();
            PostsRepository      postRepo = new PostsRepository();
            UsersRepository      userRepo = new UsersRepository();
            List <SubReddit>     subs     = subRepo.GetAll(a => a.Name.Contains(model.Filter)).OrderByDescending(a => a.SubscribedUsers.Count()).ToList();
            List <User>          users    = userRepo.GetAll(a => a.Username.Contains(model.Filter)).OrderByDescending(a => a.Karma).ToList();

            // model.SubReddits = subRepo.GetAll(a => a.Name.Contains(model.Filter)).ToList();

            var    count = 0;
            Thread ta    = new Thread(new ThreadStart(UsersLoop));
            Thread tb    = new Thread(new ThreadStart(SubLoop));

            ta.Start();
            tb.Start();

            ta.Join();
            tb.Join();

            void UsersLoop()
            {
                Thread.Sleep(400);
                foreach (var item in users)
                {
                    if (count == 3)
                    {
                        break;
                    }
                    model.Users.Add(item);
                    count++;
                }
            }

            void SubLoop()
            {
                Thread.Sleep(390);
                foreach (var item in subs)
                {
                    if (count == 3)
                    {
                        break;
                    }
                    model.SubReddits.Add(item);
                    count++;
                }
            }

            model.Posts = postRepo.GetAll(a => a.Title.ToLower().Contains(model.Filter.ToLower()) ||
                                          a.SubReddit.Name.ToLower().Contains(model.Filter.ToLower()) ||
                                          a.Comments.Any(b => b.Text.ToLower().Contains(model.Filter.ToLower())) ||
                                          a.Content.ToLower().Contains(model.Filter.ToLower())).OrderByDescending(b => b.Rating).ToList();
            return(View(model));
        }
        public void PostsRepository_HasPosts()
        {
            //  Arrange
            var postsRepository = new PostsRepository(new WebClient(new HttpClient()));

            //  Act
            var result = postsRepository.GetAll <Post>();

            //  Assert
            Assert.True(result.Result.Count > 0);
        }
Exemple #8
0
        public ActionResult Index(IndexVM model)
        {
            UsersRepository    repo         = new UsersRepository();
            PostsRepository    postsRepo    = new PostsRepository();
            CommentsRepository commentsRepo = new CommentsRepository();

            model.User     = repo.GetById(model.UserId);
            model.Posts    = postsRepo.GetAll(p => p.UserId == model.UserId);
            model.Comments = commentsRepo.GetAll(c => c.UserId == model.UserId);

            return(View(model));
        }
        public ActionResult ViewDetail(int id)
        {
            var controllerId = this.ControllerContext.RouteData.Values["controller"].ToString() + "Controller";

            ViewBag.Rights = (new AuthorizationRepository()).GetRights(controllerId, User.GetClaimValue(ClaimTypes.Role));

            var empId = User.GetClaimValue(ClaimTypes.PrimarySid);

            var repository = new PostsRepository();
            var item       = repository.GetAll(null, null, null, empId, id, null, null).FirstOrDefault();

            return(View(item));
        }
Exemple #10
0
        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));
        }
Exemple #11
0
        // GET: Post
        public ActionResult Index()
        {
            List <Models.PostViewModel> posts = new List <Models.PostViewModel>();

            foreach (BashReader.Models.Post post in _repository.GetAll())
            {
                posts.Add(new Models.PostViewModel
                {
                    PostId           = post.PostId,
                    Rating           = post.Rating,
                    Title            = post.PostName,
                    Id               = post.Id,
                    Description      = post.PostText,
                    PublishDate      = post.PublishDate,
                    ShortDescription = (post.PostText.Length > 50 ? (post.PostText.Remove(50, post.PostText.Length - 50) + "...") : post.PostText)
                });
            }
            return(View(posts));
        }
        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));
        }
Exemple #13
0
 public IEnumerable <Post> Get()
 {
     return(_repo.GetAll());
 }
Exemple #14
0
 public IHttpActionResult Get()
 {
     return(Ok(postsrepository.GetAll()));
 }
Exemple #15
0
        public PostsModule()
        {
            var postsRepository   = new PostsRepository();
            var authorsRepository = new AuthorsRepository();
            var blogsRepository   = new BlogsRepository();

            Get["/Posts"] = p =>
            {
                var posts = postsRepository.GetAll();

                return(View["Posts/index", new { Posts = posts, Title = "Nancy Blog", Description = "A simple blog demo built with Nancy" }]);
            };

            Get["/Posts/{id}"] = p =>
            {
                var post = postsRepository.Find(p.id);

                return(View["Posts/show", new { Post = post, Title = "Nancy Blog", Description = "A simple blog demo built with Nancy" }]);
            };

            Get["/Posts/New"] = p =>
            {
                var post = new Post();

                var author = authorsRepository.Find(1);

                var blog = blogsRepository.Find(1);

                return(View["Posts/new", new { Post = post, Author = author, Blog = blog, Title = "Nancy Blog", Description = "A simple blog demo built with Nancy", Action = "Create" }]);
            };

            Post["/Posts/Create"] = p =>
            {
                Post post = this.Bind();

                var addedPost = postsRepository.Add(post);

                if (post.PostId != addedPost.PostId)
                {
                    return(Response.AsRedirect("/Posts"));
                }

                return(View[""]);
            };

            Get["/Posts/{id}/Edit"] = p =>
            {
                var post = postsRepository.Find(p.id);

                var author = authorsRepository.Find(1);

                var blog = blogsRepository.Find(1);

                return(View["Posts/edit", new { Post = post, Author = author, Blog = blog, Title = "Nancy Blog", Description = "A simple blog demo built with Nancy", Action = p.id + "/Update" }]);
            };

            Post["/Posts/Update"] = p =>
            {
                Post post = this.Bind();

                var modifiedPost = postsRepository.Update(post);

                if (true)
                {
                    return(Response.AsRedirect("/Posts"));
                }

                return(View[""]);
            };
        }