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"); } } }