110 lines
4.9 KiB
C#
110 lines
4.9 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Enums;
|
|
using Kreta.Framework;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Security;
|
|
using Kreta.Web.Utils;
|
|
|
|
namespace Kreta.Web.Models.Builder
|
|
{
|
|
public class LayoutModelBuilder
|
|
{
|
|
private UrlHelper url;
|
|
public UrlHelper Url
|
|
{
|
|
get
|
|
{
|
|
if (url == null)
|
|
{
|
|
url = new UrlHelper(HttpContext.Current.Request.RequestContext);
|
|
}
|
|
return url;
|
|
}
|
|
}
|
|
|
|
public void SetBase(string uzenetekSzama, LayoutModel model, string url)
|
|
{
|
|
string shortname = ClaimData.OrganizationShortName;
|
|
model.OrganizationName = ClaimData.OrganizationCode + " - " + (string.IsNullOrWhiteSpace(shortname) ? ClaimData.OrganizationName : shortname);
|
|
model.UserMenu = CreateUserMenu(uzenetekSzama);
|
|
model.HomePageUrl = Url.Content(string.Format(CommonExtensions.GetDefaultPage(true)));
|
|
}
|
|
|
|
public LayoutUserMenu CreateUserMenu(string uzenetekSzama)
|
|
{
|
|
var menu = new LayoutUserMenu();
|
|
|
|
menu.UserName = string.Format("{0} {1}", ClaimData.FelhasznaloNev, !string.IsNullOrWhiteSpace(ClaimData.GondviseloNeve) ? "(" + ClaimData.GondviseloNeve + ")" : "");
|
|
menu.MessageCount = uzenetekSzama;
|
|
menu.EventCount = GetEventCount();
|
|
|
|
menu.AdminHomePageUrl = "";
|
|
var packages = ClaimData.FelhasznaloSzerepCsomagok;
|
|
if (packages.Contains(KretaClaimPackages.Adminisztrator.ClaimValue))
|
|
{
|
|
var url = new UrlHelper(HttpContext.Current.Request.RequestContext);
|
|
menu.AdminHomePageUrl = url.Content("~/Adminisztracio/RendszerHibaErtesites");
|
|
}
|
|
|
|
menu.ProfilImgSrc = ProfileUtils.UserProfileImage;
|
|
menu.UserMenuItems = new List<LayoutUserMenuItem>();
|
|
|
|
var fullKretaVersion = ClaimData.IsFullKretaVerzio;
|
|
|
|
if (ClaimManager.HasPackage(KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.Naplo.ClaimValue))
|
|
{
|
|
string icon = "fa-user";
|
|
string action = "MasterLayoutHelper.popUpSajatAdatlapWindow(); return false;";
|
|
|
|
menu.UserMenuItems.Add(new LayoutUserMenuItem { Name = LayoutResource.SzemelyesAdatlap, Url = "javascript:void(0);", ClientAction = action, CssClass = icon });
|
|
}
|
|
|
|
string tempURL = Url.Action("Index", "Profil", new { area = "Adminisztracio" });
|
|
if (!fullKretaVersion)
|
|
{
|
|
tempURL = "javascript:void(0);";
|
|
}
|
|
|
|
menu.UserMenuItems.Add(new LayoutUserMenuItem { Name = StringResourcesUtil.GetString(2610) /*Profil beállítások*/, Url = tempURL, ClientAction = string.Empty, CssClass = "fa-cog" + (!fullKretaVersion ? " disabledMenuItem" : "") });
|
|
if (ClaimData.FelhasznaloSzerepkorok.Keys.Except(Constants.General.NotVisiblePermissions).Count() > 1 && (ClaimData.IsActivTanev || !ClaimData.IsAdministrator))
|
|
{
|
|
menu.UserMenuItems.Add(new LayoutUserMenuItem { Name = MenuResource.SzerepkorValtas, Url = Url.Action("Index", "SzerepkorValaszto", new { area = "Adminisztracio" }), ClientAction = string.Empty, CssClass = "fa-retweet" });
|
|
}
|
|
|
|
if (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator)
|
|
{
|
|
menu.UserMenuItems.Add(new LayoutUserMenuItem() { Name = UgyfelszolgalatResource.KRETAUgyfelszolgalat, Url = "javascript:void(0);", ClientAction = "JiraRestHelper.popUpUgyfelSzolgalatWindow(); return false;", CssClass = "fa-ugyfelszolgalaticon" });
|
|
}
|
|
|
|
menu.UserMenuItems.Add(new LayoutUserMenuItem { Name = StringResourcesUtil.GetString(2582) /*Kijelentkezés*/, Url = "javascript:void(0);", ClientAction = "MasterLayout.LogOut(); return false;", CssClass = "fa-sign-out" });
|
|
|
|
GetPopupAzonosito(menu);
|
|
|
|
return menu;
|
|
}
|
|
|
|
private void GetPopupAzonosito(LayoutUserMenu menu)
|
|
{
|
|
var cookie = HttpContext.Current.Request.Cookies.Get("DisplayedPopups");
|
|
DataSet ds = new AdminHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNextDashboardPopupAzonosito(ClaimData.GondviseloId, cookie?.Value.Split('|'));
|
|
if (ds != null && ds.Tables != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
menu.NeedPopupId = SDAConvert.ToInt32(ds.Tables[0].Rows[0]["ID"]);
|
|
menu.NeedPopupAzonosito = SDAConvert.ToString(ds.Tables[0].Rows[0]["C_EGYEDIAZONOSITO"]);
|
|
}
|
|
}
|
|
|
|
public static string GetEventCount()
|
|
{
|
|
return "0";
|
|
}
|
|
}
|
|
}
|