kreta/KretaWeb/Helpers/CommonExtensions.cs
2024-03-13 00:33:46 +01:00

225 lines
7.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
using Kreta.Web.Security;
using Kreta.Web.Utils;
using Newtonsoft.Json;
namespace Kreta.Web.Helpers
{
public static class CommonExtensions
{
public static List<SelectListItem> ToSelectListItemList(this IDictionary<string, string> dictionary, List<string> removeValueList = null, int? selectedValue = null)
{
var itemList = removeValueList != null
? dictionary.Where(x => !removeValueList.Contains(x.Key))
: dictionary;
var result = itemList.Select(x => new SelectListItem
{
Value = x.Key,
Text = x.Value,
Selected = selectedValue != null && x.Key == selectedValue.ToString()
}).ToList();
return result;
}
public static string ToJson(this object obj, bool isNeedEncoding = false)
{
var json = JsonConvert.SerializeObject(obj);
if (!isNeedEncoding)
{
return json;
}
return System.Web.HttpUtility.JavaScriptStringEncode(json);
}
public static string ToJsonReplaceSpecialCharaters(this string text)
{
string result = text
.Replace("'", @"\'")
.Replace("\"", "&quot;");
return result;
}
#region Nyomtatványhoz név és azonosító generálás
public static string NevGeneralas(string nyomtatvanynev, NyomtatvanyNevGeneralasModel model, bool isIktatas = false, bool notAppendDateTimeNow = false, string customMessage = null, bool forOrganization = false)
{
IConnectionType connectionType = ConnectionTypeExtensions.GetOrganizationConnectionType();
if (!forOrganization)
{
connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
}
var result = new StringBuilder(nyomtatvanynev + "_");
if (model.TanuloID.HasValue)
{
var h = new TanuloHelper(connectionType);
var tanulo = h.GetTanuloiAdatok(model.TanuloID.Value, ClaimData.KovTanevID, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
result.Append(tanulo.CsaladiNev + "_" + tanulo.UtoNev + "_" + tanulo.OktatasiAzonosito + "_");
}
if (model.OsztalyCsoportId.HasValue)
{
var h = new OsztalyCsoportHelper(connectionType);
result.Append(h.GetOsztalyCsoportNevById(model.OsztalyCsoportId.Value) + "_");
}
if (model.TanarID.HasValue)
{
var h = new TanarHelper(connectionType);
var tanar = h.GetTanarAdatok(model.TanarID.Value);
result.Append(tanar.MunkavallaloCsaladiNev + "_" + tanar.MunkavallaloUtonev + "_");
}
if (model.OsztalyID.HasValue)
{
var h = new OsztalyHelper(connectionType);
var osztaly = h.GetClassById(model.OsztalyID.Value);
result.Append(osztaly.OsztalyNev + "_");
}
if (model.CsoportId.HasValue)
{
var h = new CsoportHelper(connectionType);
var csoport = h.GetGroupByID(model.CsoportId.Value);
result.Append(csoport.CsoportNeve + "_");
}
if (model.TeremID.HasValue)
{
var h = new TeremHelper(connectionType);
var teremNev = h.GetTeremNev(model.TeremID.Value);
result.Append(teremNev + "_");
}
if (model.FoglalkozasID.HasValue)
{
var h = new FoglalkozasHelper(connectionType);
var foglalkozasNev = h.GetFoglalkozasNeve(model.FoglalkozasID.Value);
result.Append(foglalkozasNev + "_");
}
if (model.FeladatellatasiHelyId.HasValue)
{
var h = new FeladatEllatasiHelyHelper(connectionType);
var feladatellatasiHelyNev = h.GetFeladatEllatasiHelyDDl(string.Empty).ToList().First(x => x.Key == model.FeladatellatasiHelyId.Value.ToString()).Value;
result.Append(feladatellatasiHelyNev + "_");
}
if (model.TanevID.HasValue)
{
var h = new TanevHelper(new OrganizationConnectionType(connectionType.FelhasznaloId, connectionType.IntezmenyId, connectionType.IntezmenyAzonosito, model.TanevID.Value));
var tanev = h.GetTanevInfo();
result.Append(tanev.Nev.Replace("/", "_"));
if (!isIktatas)
{
result.Append('_');
}
}
if (!isIktatas && !notAppendDateTimeNow)
{
result.Append(DateTime.Now.ToShortDateString());
}
if (!string.IsNullOrWhiteSpace(customMessage))
{
result.Append("_" + customMessage);
}
return result.ToString();
}
#endregion
private const string TanarDashboardUrl = "~/Tanar/TanarDashboard";
private const string LoginUrl = "~/Adminisztracio/Login";
public static string GetDefaultPage(bool fromKretaLogo = false)
{
var role = ClaimData.FelhasznaloSzerepkor;
var package = ClaimData.FelhasznaloSzerepCsomagok;
if (package.Contains(KretaClaimPackages.IsArchivIntezmeny.ClaimValue))
{
return ApplicationData.ArchivDefaultPage;
}
if (role.Equals(SzerepkorTipusEnum.Ellenorzo))
{
if (package.Contains(KretaClaimPackages.Gondviselo.ClaimValue))
{
return ApplicationData.SzuloDefaultPage;
}
if (package.Contains(KretaClaimPackages.CsokkentettGondviselo.ClaimValue))
{
return ApplicationData.CsokkentettSzuloDefaultPage;
}
return ApplicationData.TanuloDefaultPage;
}
if (role.Equals(SzerepkorTipusEnum.Naplo))
{
if (!fromKretaLogo && !ProfileUtils.HetirendMegjeleniteseBelepeskor)
{
return TanarDashboardUrl;
}
if (package.Contains(KretaClaimPackages.Osztalyfonok.ClaimValue) || package.Contains(KretaClaimPackages.SzuperOsztalyfonok.ClaimValue))
{
return ApplicationData.OsztalyfonokDefaultPage;
}
if (package.Contains(KretaClaimPackages.Tanar.ClaimValue))
{
return ApplicationData.TanarDefaultPage;
}
return ApplicationData.NaploDefaultPage;
}
if (role.Equals(SzerepkorTipusEnum.Adminisztrator))
{
if (package.Contains(KretaClaimPackages.SzuperOsztalyfonok.ClaimValue))
{
return ApplicationData.IgazgatoDefaultPage;
}
return ApplicationData.AdminDefaultPage;
}
if (package.Contains(KretaClaimPackages.Dualis_Admin.ClaimValue))
{
return ApplicationData.DualisAdminDefaultPage;
}
if (package.Contains(KretaClaimPackages.TavolletIgenylo.ClaimValue))
{
return ApplicationData.TavolletDefaultPage;
}
return LoginUrl;
}
}
}