School Commit Init
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
using Lab9.Models;
|
||||
using Lab9.Repositories;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace Lab9.Controllers
|
||||
{
|
||||
[Route("/")]
|
||||
public class MainController : Controller
|
||||
{
|
||||
private readonly IRepository _repository;
|
||||
|
||||
public MainController(IRepository repository)
|
||||
{
|
||||
_repository = repository;
|
||||
}
|
||||
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View("Views/Index.cshtml");
|
||||
}
|
||||
|
||||
[Route("login")]
|
||||
[HttpGet]
|
||||
public IActionResult Login()
|
||||
{
|
||||
return View("Views/Login.cshtml");
|
||||
}
|
||||
|
||||
[Route("login")]
|
||||
[HttpPost]
|
||||
public IActionResult Login(string username, string password)
|
||||
{
|
||||
if (_repository.ValidateUser(username, password))
|
||||
{
|
||||
HttpContext.Session.SetString("username", username);
|
||||
return RedirectToAction("admin");
|
||||
}
|
||||
ViewBag.Error = "Invalid username or password";
|
||||
return View("Views/Login.cshtml");
|
||||
}
|
||||
|
||||
[Route("logout")]
|
||||
[HttpGet]
|
||||
public IActionResult Logout()
|
||||
{
|
||||
HttpContext.Session.Remove("username");
|
||||
return Redirect("/");
|
||||
}
|
||||
|
||||
[Route("view")]
|
||||
[HttpGet]
|
||||
public IActionResult News()
|
||||
{
|
||||
return View("Views/View.cshtml", _repository.GetAllNews());
|
||||
}
|
||||
|
||||
[Route("admin")]
|
||||
[HttpGet]
|
||||
public IActionResult Admin()
|
||||
{
|
||||
if (HttpContext.Session.GetString("username") == null)
|
||||
{
|
||||
return Redirect("/login");
|
||||
}
|
||||
return View("Views/Admin.cshtml",_repository.GetAllNews());
|
||||
}
|
||||
|
||||
[Route("add")]
|
||||
[HttpGet]
|
||||
public IActionResult Add()
|
||||
{
|
||||
if (HttpContext.Session.GetString("username") == null)
|
||||
{
|
||||
return Redirect("/login");
|
||||
}
|
||||
return View("Views/Add.cshtml");
|
||||
}
|
||||
|
||||
[Route("edit/{id}")]
|
||||
[HttpGet]
|
||||
public IActionResult Edit(int id)
|
||||
{
|
||||
if (HttpContext.Session.GetString("username") == null)
|
||||
{
|
||||
return Redirect("/login");
|
||||
}
|
||||
return View("Views/Edit.cshtml", _repository.GetNewsById(id));
|
||||
}
|
||||
|
||||
[Route("edit")]
|
||||
[HttpPost]
|
||||
public IActionResult Edit(News news)
|
||||
{
|
||||
if (HttpContext.Session.GetString("username") == null)
|
||||
{
|
||||
return Redirect("/login");
|
||||
}
|
||||
if (_repository.UpdateNews(news))
|
||||
{
|
||||
return RedirectToAction("Admin");
|
||||
}
|
||||
ViewBag.Error = "Failed to update news";
|
||||
return View("Views/Edit.cshtml", news);
|
||||
}
|
||||
|
||||
[Route("add")]
|
||||
[HttpPost]
|
||||
public IActionResult Add(News news)
|
||||
{
|
||||
if (HttpContext.Session.GetString("username") == null)
|
||||
{
|
||||
return Redirect("/login");
|
||||
}
|
||||
if (_repository.InsertNews(news))
|
||||
{
|
||||
return RedirectToAction("Admin");
|
||||
}
|
||||
ViewBag.Error = "Failed to add news";
|
||||
return View("Views/Add.cshtml", news);
|
||||
}
|
||||
|
||||
[Route("getnews")]
|
||||
[HttpPost]
|
||||
public IActionResult GetNews(string category, string date)
|
||||
{
|
||||
if (category != null && date != null)
|
||||
{
|
||||
return Ok(_repository.GetAllNewsByCategoryAndDate(category, DateTime.Parse(date)));
|
||||
}
|
||||
if (category != null)
|
||||
{
|
||||
return Ok(_repository.GetAllNewsByCategory(category));
|
||||
}
|
||||
if (date != null)
|
||||
{
|
||||
return Ok(_repository.GetAllNewsByDate(DateTime.Parse(date)));
|
||||
}
|
||||
return Ok(_repository.GetAllNews());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user