public ActionResult Index()
        {
            var vm = new HomeViewModel();

            vm.MinimumPosts = 3;
            using (var context = new MassTaggerContext())
            {
                var subs = new List <SubredditViewModel>();
                foreach (var subreddit in context.Subreddits.OrderBy(sub => sub.SubName))
                {
                    var count = context.SubredditUsers.Count(su => su.SubredditId == subreddit.id);
                    if (count > 0)
                    {
                        var svm = new SubredditViewModel
                        {
                            Id       = subreddit.id,
                            Name     = subreddit.SubName,
                            Ignored  = false,
                            TagColor = Util.Enum.TagColor.red
                        };
                        subs.Add(svm);
                    }
                }
                vm.Subreddits = subs;
            }
            return(View(vm));
        }
示例#2
0
        public SubredditPage()
        {
            this.InitializeComponent();

            ViewModel = new SubredditViewModel();

            DataContext = ViewModel;

            if (Settings.Instance.LastLoggedUser != null)
            {
                ViewModel.Login();
            }
        }
        public ActionResult AddSubreddit(SubredditViewModel subredditViewModel)
        {
            using (var redditCloneContext = new RedditCloneContext())
            {
                var subreddit = new Subreddit
                {
                    SubredditName = subredditViewModel.SubredditName
                };

                redditCloneContext.Subreddits.Add(subreddit);
                redditCloneContext.SaveChanges();

                return(RedirectToAction("Detail", new { id = subreddit.SubredditId }));
            }
        }
        public ActionResult DeleteSubreddit(SubredditViewModel subredditViewModel)
        {
            using (var redditCloneContext = new RedditCloneContext())
            {
                var subreddit = redditCloneContext.Subreddits.SingleOrDefault(s => s.SubredditId == subredditViewModel.SubredditId);

                if (subreddit != null)
                {
                    redditCloneContext.Subreddits.Remove(subreddit);
                    redditCloneContext.SaveChanges();

                    return(RedirectToAction("Index"));
                }

                return(new HttpNotFoundResult());
            }
        }
示例#5
0
        public ActionResult AddSubreddit(SubredditViewModel subredditViewModel)
        {
            using (var redditCloneContext = new RedditCloneContext())
            {
                // Build a new subreddit and save it to the DB.
                var newSubreddit = new Subreddit
                {
                    SubredditName = subredditViewModel.SubredditName,
                    OwnerId       = User.Identity.GetUserId()
                };

                redditCloneContext.Subreddits.Add(newSubreddit);
                redditCloneContext.SaveChanges();

                return(RedirectToAction("Detail", new { id = newSubreddit.SubredditId }));
            }
        }
 public IActionResult Index(int id)
 {
     try
     {
         HttpContext.Session.SetInt32(SubredditId, id);
         var vm = new SubredditViewModel
         {
             Posts      = _context.Posts.Where(p => p.Subreddit.Id == id).ToList(),
             Subreddit  = _context.Subreddits.Find(id),
             SelectedId = id
         };
         return(View(vm));
     }
     catch (ArgumentNullException e)
     {
         return(RedirectToPage("Home"));
     }
 }
示例#7
0
        public ActionResult DeleteSubreddit(SubredditViewModel subredditViewModel)
        {
            using (var redditCloneContext = new RedditCloneContext())
            {
                var subreddit = redditCloneContext.Subreddits.SingleOrDefault(s => s.SubredditId == subredditViewModel.SubredditId);

                // Ensure that the user owns the subreddit and delet it from the DB.
                if (subreddit != null && User.Identity.GetUserId() == subreddit.OwnerId)
                {
                    redditCloneContext.Subreddits.Remove(subreddit);
                    redditCloneContext.SaveChanges();

                    return(RedirectToAction("Index"));
                }

                return(new HttpNotFoundResult());
            }
        }
        public IActionResult AddPost(SubredditViewModel model)
        {
            var id = HttpContext.Session.GetInt32(SubredditId);

            if (!id.HasValue)
            {
                return(RedirectToPage("Home"));
            }

            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", new { id }));
            }
            model.NewPost.SubredditId = id.GetValueOrDefault();
            _context.Add(model.NewPost);
            _context.SaveChanges();

            return(RedirectToAction("Index", new { id }));
        }