using GreenTree.Nachtragsmanagement.Core.Authentication;
using GreenTree.Nachtragsmanagement.Services.User;
using GreenTree.Nachtragsmanagement.Web.Models.Global;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace GreenTree.Nachtragsmanagement.Web.Controllers
{
public class GlobalController : Controller
{
private readonly IUserHelper _userHelper;
private readonly IUserService _userService;
public GlobalController(
IUserHelper userHelper,
IUserService userService)
{
_userHelper = userHelper;
_userService = userService;
}
///
/// Represents the global Footer
///
public ActionResult Footer()
{
var cookieUser = _userHelper.FromCookies();
if (cookieUser == null)
return View("~/Views/Shared/_Footer.cshtml", null);
var dbUser = _userService.GetUserById(cookieUser.Id);
if (dbUser == null)
return View("~/Views/Shared/_Footer.cshtml", null);
var footerModel = new FooterModel
{
CustomNumber = dbUser.CustomNumber,
Forename = dbUser.Forename,
Lastname = dbUser.Lastname,
RoleDescription = dbUser.CurrentRole.Description
};
ViewData["Roles"] =
dbUser.Roles
.Select(r => new
{
r.Id,
r.Description
});
return View("~/Views/Shared/_Footer.cshtml", footerModel);
}
///
/// Sets the current role of the logged in user and redirects to the home page
///
/// The id of the new role.
public ActionResult SetRole(int roleId)
{
var user = _userHelper.FromCookies();
var role = _userService.GetRoleById(roleId);
user.CurrentRole = role;
_userHelper.ToCookies(user);
return RedirectToAction("Index", "Home");
}
///
/// Shows an unauthorized message
///
public ActionResult NotAuthorized()
{
return View("~/Views/Global/NotAuthorized.cshtml");
}
}
}