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 ToSelectListItemList(this IDictionary dictionary, List 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("\"", """); 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; } } }