using System.Security.Claims; using System.Threading.Tasks; using Microsoft.AspNet.Mvc; using Microsoft.AspNet.Mvc.Rendering; using Microsoft.Data.Entity; using Yavsc.Models; using Yavsc.Models.Blog; namespace Yavsc.Controllers { public class CommentsController : Controller { private ApplicationDbContext _context; public CommentsController(ApplicationDbContext context) { _context = context; } // GET: Comments public async Task Index() { var applicationDbContext = _context.Comment.Include(c => c.Post); return View(await applicationDbContext.ToListAsync()); } // GET: Comments/Details/5 public async Task Details(long? id) { if (id == null) { return HttpNotFound(); } Comment comment = await _context.Comment.SingleAsync(m => m.Id == id); if (comment == null) { return HttpNotFound(); } return View(comment); } // GET: Comments/Create public IActionResult Create() { ViewData["PostId"] = new SelectList(_context.Blogspot, "Id", "Post"); return View(); } // POST: Comments/Create [HttpPost] [ValidateAntiForgeryToken] public async Task Create(Comment comment) { comment.UserCreated = User.GetUserId(); if (ModelState.IsValid) { _context.Comment.Add(comment); await _context.SaveChangesAsync(); return RedirectToAction("Index"); } ViewData["PostId"] = new SelectList(_context.Blogspot, "Id", "Post", comment.PostId); return View(comment); } // GET: Comments/Edit/5 public async Task Edit(long? id) { if (id == null) { return HttpNotFound(); } Comment comment = await _context.Comment.SingleAsync(m => m.Id == id); if (comment == null) { return HttpNotFound(); } ViewData["PostId"] = new SelectList(_context.Blogspot, "Id", "Post", comment.PostId); return View(comment); } // POST: Comments/Edit/5 [HttpPost] [ValidateAntiForgeryToken] public async Task Edit(Comment comment) { if (ModelState.IsValid) { _context.Update(comment); await _context.SaveChangesAsync(); return RedirectToAction("Index"); } ViewData["PostId"] = new SelectList(_context.Blogspot, "Id", "Post", comment.PostId); return View(comment); } // GET: Comments/Delete/5 [ActionName("Delete")] public async Task Delete(long? id) { if (id == null) { return HttpNotFound(); } Comment comment = await _context.Comment.SingleAsync(m => m.Id == id); if (comment == null) { return HttpNotFound(); } return View(comment); } // POST: Comments/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public async Task DeleteConfirmed(long id) { Comment comment = await _context.Comment.SingleAsync(m => m.Id == id); _context.Comment.Remove(comment); await _context.SaveChangesAsync(); return RedirectToAction("Index"); } } }