Files
upo-senior-assistant/SeniorAssistant/Controllers/HomeController.cs

73 lines
1.8 KiB
C#

using LinqToDB;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SeniorAssistant.Models;
using System.Linq;
namespace SeniorAssistant.Controllers
{
[ApiExplorerSettings(IgnoreApi = true)]
public class HomeController : BaseController
{
[Route("")]
[Route("Home")]
[Route("Index")]
public IActionResult Index()
{
string username = HttpContext.Session.GetString(Username);
return View("Index", GetUser(username));
}
[Route("Heartbeat")]
public IActionResult Heartbeat()
{
return CheckAuthorized("Data", "Heartbeat");
}
[Route("Sleep")]
public IActionResult Sleep()
{
return CheckAuthorized("Data", "Sleep");
}
[Route("Step")]
public IActionResult Step()
{
return CheckAuthorized("Data", "Step");
}
[Route("Users")]
public IActionResult Users()
{
return CheckAuthorized("Users");
}
[Route("User/{User}")]
public IActionResult SingleUser(string user)
{
return CheckAuthorized("User", GetUser(user));
}
[Route("Message/{User}")]
public IActionResult Message(string user)
{
return CheckAuthorized("Message", GetUser(user));
}
private User GetUser(string username)
{
return Db.Users
.LoadWith(u => u.Doc)
.LoadWith(u => u.Pat)
.Where(u => u.Username.Equals(username))
.FirstOrDefault();
}
private IActionResult CheckAuthorized(string view, object model = null)
{
if (!IsLogged())
return View("Index", "/" + view);
return View(view, model);
}
}
}