using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Text.RegularExpressions; using System.Web; using System.Web.Http; using System.Web.Http.ModelBinding; using Kendo.Mvc.UI; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Client.KGR; using Kreta.Client.KGR.Request; using Kreta.Core; using Kreta.Core.FeatureToggle; using Kreta.Core.Logic; using Kreta.Framework; using Kreta.Framework.Security; using Kreta.Resources; using Kreta.Web.Areas.Adminisztracio.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Models; using Kreta.Web.Security; using Kreta.Web.Utils; using Newtonsoft.Json; using static Kreta.Core.Constants; namespace Kreta.Web.Areas.Adminisztracio.ApiControllers { [ApiRoleClaimsAuthorize(true)] [MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public class ProfilApiController : ApiController { private readonly IKGRClient _kgrClient; public ProfilApiController(IKGRClient kgrClient) { _kgrClient = kgrClient ?? throw new ArgumentNullException(nameof(kgrClient)); } /// /// Jelszó módosítás mentés /// /// /// [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveProfilData(ProfilModel model) { if (ModelState.IsValid) { try { var belepesiNev = ClaimData.BelepesiNev; var helper = new FelhasznaloBelepesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var loginInfo = helper.AuthenticateUser(belepesiNev, model.JelenlegiJelszo); if (loginInfo == null || loginInfo.PasswordState == PasswordState.INVALID) { throw new IncorrectPasswordException(loginInfo.BelepesiNev); } helper.ChangeUserPassword(belepesiNev, model.UjJelszo); return new HttpResponseMessage(HttpStatusCode.OK); } catch (IncorrectPasswordException) { throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(2591)/*Helytelen jelenlegi jelszó!*/); } catch (Exception ex) { throw new StatusError(HttpStatusCode.InternalServerError, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/) { UnHandledException = ex }; } } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } /// /// Elérhetőség módosítás mentés /// /// /// [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveElerhetosegek(ElerhetosegekModel model) { model.CleanFromEmptyRows(); if (!ValidateElerhetosegek(model, out var errorDictionary)) { ModelState.AddRange(errorDictionary); } if (ModelState.IsValid) { try { var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var co = model.ConvertToCo(); var newDbElerhetosegek = felhasznaloHelper.SaveElerhetosegek(co, ClaimData.FelhasznaloId); return Request.CreateResponse(HttpStatusCode.OK, newDbElerhetosegek); } catch (Exception ex) { throw new StatusError(HttpStatusCode.InternalServerError, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex }; } } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } /// /// Profilkép mentés /// /// [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveProfilePicture() { if (!Request.Content.IsMimeMultipartContent()) { throw new StatusError(HttpStatusCode.UnsupportedMediaType, StringResourcesUtil.GetString(4890)/*Nem támogatott tipus*/); } var root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); var tempFilePath = provider.FileData[0].LocalFileName; var byteArray = File.ReadAllBytes(tempFilePath); var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); ProfileUtils.UserProfileImage = helper.ProfileKep(helper.ProfilkepMentese(byteArray)); File.Delete(tempFilePath); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveGondviseloAdatok(GondviseloAdatokModModel model) { try { new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveGondviseloElerhetosegAdatok(ConvertGondviseloAdatokModModelToCO(model)); return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex }; } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveGondviselo4TAdatok(Felhasznalo4TAdatokModel model) { if (!ClaimData.FeltarGondviseloEnabled) { throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz); } try { new GondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveGondviselo4TAdatok(ClaimData.GondviseloId.Value, ConvertGondviselo4TAdatokModelToCo(model)); return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex }; } } [HttpPost] public HttpResponseMessage DeleteGondviseloEmail() { try { new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteGondviseloEmail(ClaimData.GondviseloId.Value); return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex }; } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTanuloBankszamlaAdatok(TanuloBankszamlaModel model) => SaveBankszamlaAdatok(model, true); [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveAlkalmazottBankszamlaAdatok(AlkalmazottBankszamlaModel model) => SaveBankszamlaAdatok(model, false); [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveMentoriNyugdijAdatok(MentoriNyugdijModel model) { if (ModelState.IsValid) { try { var co = model.ConvertToCo(); var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext)); var isKlebelsbergKozpontOrNSZFH = featureContext.IsEnabled(FeatureName.MunkaugyiAdatokKlebelsberg) || featureContext.IsEnabled(FeatureName.MunkaugyiAdatokNSZFH); var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny; new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveAlkalmazottNyugdijAdatok(co, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex }; } return new HttpResponseMessage(HttpStatusCode.OK); } var errorMessage = string.Join("
", ModelState.Select(x => string.Join("
", x.Value.Errors.Select(y => y.ErrorMessage)))); return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage); } [NonAction] public HttpResponseMessage SaveBankszamlaAdatok(TanuloBankszamlaModel model, bool isTanulo) { var co = model.ConvertToCo(); if (!ValidateBankszamlaszamAdatok(co, out var errorDictionary)) { ModelState.AddRange(errorDictionary); } if (ModelState.IsValid) { try { if (isTanulo) { new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveTanuloBankszamlaAdatok(ClaimData.FelhasznaloId, ClaimData.GondviseloId, co); } else { new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveAlkalmazottBankszamlaAdatok(ClaimData.FelhasznaloId, co); } } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex }; } return new HttpResponseMessage(HttpStatusCode.OK); } var errorMessage = string.Join("
", ModelState.Select(x => string.Join("
", x.Value.Errors.Select(y => y.ErrorMessage)))); return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage); } [ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)] public DataSourceResult GetTanuloAdatGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetTanuloAdatForGondviselo(ClaimData.GondviseloId.Value); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public DataSourceResult GetElerhetosegCimGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); DataSet ds; if (ClaimData.GondviseloId.HasValue) { ds = helper.GetCimData(ClaimData.GondviseloId.Value, isGondviselo: true); } else { ds = helper.GetCimData(ClaimData.FelhasznaloId, isGondviselo: false); } return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public DataSourceResult GetElerhetosegTelGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); DataSet ds; if (ClaimData.GondviseloId.HasValue) { ds = helper.GetTelefonData(ClaimData.GondviseloId.Value); } else { ds = helper.GetTelefonData(ClaimData.FelhasznaloId); } return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public DataSourceResult GetElerhetosegEmailGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); DataSet ds; if (ClaimData.GondviseloId.HasValue) { ds = helper.GetEmailData(ClaimData.GondviseloId.Value); } else { ds = helper.GetEmailData(ClaimData.FelhasznaloId); } return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)] public DataSourceResult GetTargyiEszkozokGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var adatlapModels = new List(); try { var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var tanaradatok = helper.GetTanarAdatok(ClaimData.FelhasznaloId); string funkcioTerulet = null; if (tanaradatok.FeladatellatasiHely.IsEntityId()) { var mukodesiHelyId = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladatEllatasiHelyAdatok(tanaradatok.FeladatellatasiHely.Value).MukodesiHelyID; var co = new MukodesiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetMukodesiHelyAdatok(mukodesiHelyId); funkcioTerulet = co.Funkcioterulet; } var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); if (!string.IsNullOrWhiteSpace(alkalmazottHelper.GetAlkalmazottSztszKod(ClaimData.FelhasznaloId))) { var result = _kgrClient.KGREszkozList(new EszkozHeaderRequest() { IntezmenyGuid = ClaimData.IntezmenyGuid.ToString(), IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Sztsz = alkalmazottHelper.GetAlkalmazottSztszKod(ClaimData.FelhasznaloId) }); var cnt = 0; foreach (var item in result) { adatlapModels.Add(new SajatAdatlapInfoModel.TargyiEszkozModel { ID = cnt.ToString(), Megnevezes = item.Megnevezes, GyariSzam = item.GyariSzam, LeltariSzam = item.Leltarszam }); cnt++; } } } catch (Exception ex) { SDAServer.Instance.Logger.ExceptionThrown(ex); } return adatlapModels.ToDataSourceResult(); } private GondviseloAdatokModCO ConvertGondviseloAdatokModModelToCO(GondviseloAdatokModModel model) { return new GondviseloAdatokModCO { GondviseloId = ClaimData.GondviseloId.Value, TanuloId = ClaimData.FelhasznaloId, UjEmail = model.UjEmail, UjTelefon = model.UjTelefon }; } private Felhasznalo4TAdatokCo ConvertGondviselo4TAdatokModelToCo(Felhasznalo4TAdatokModel model) { return new Felhasznalo4TAdatokCo { AnyjaUtonev = model.AnyjaUtonev, AnyjaVezeteknev = model.AnyjaVezeteknev, Elotag = model.Elotag, SzuletesiDatum = model.SzuletesiDatum, SzuletesiHely = model.SzuletesiHely, SzuletesiUtonev = model.SzuletesiUtonev, SzuletesiVezeteknev = model.SzuletesiVezeteknev, Utonev = model.Utonev, Vezeteknev = model.Vezeteknev, }; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveEgyHaztartasbanElokData(EgyhaztartasbanElokModel model) { if (!ValidateEgyHaztartasbanElok(model, out var errorDictionary)) { ModelState.AddRange(errorDictionary); } if (ModelState.IsValid) { var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.SaveEgyhaztartasbanElokData(model.ConvertToCo(), ClaimData.FelhasznaloId, ClaimData.GondviseloId); return Request.CreateResponse(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public string LoadEgyHaztartasbanElokData() { return JsonConvert.SerializeObject(new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyhaztartasbanElokData(ClaimData.FelhasznaloId)); } #region Helpers private bool ValidateElerhetosegek(ElerhetosegekModel model, out Dictionary> errorDictionary) { errorDictionary = new Dictionary>(); if (model.Email.Where(e => e.Alapertelmezett && e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Take(2).Count() != 1) { AddErrorMessage(errorDictionary, "Error", AdminisztracioResource.KotelezoEgyAlapertelmezettEmail); } if (model.Telefon.Where(t => t.Alapertelmezett && t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Take(2).Count() != 1) { AddErrorMessage(errorDictionary, "Error", AdminisztracioResource.KotelezoEgyAlapertelmezettTelefon); } var publikusEmailCimek = model.Email.Where(e => e.IsPublic && e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted); if (publikusEmailCimek.Skip(1).Any()) { foreach (var publikusEmail in publikusEmailCimek.Skip(1)) { AddErrorMessage(errorDictionary, publikusEmail.TextBoxId, AdminisztracioResource.PublikusEmailCsakEgyLehet); } } var publikusTelefonszamok = model.Telefon.Where(t => t.IsPublic && t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted); if (publikusTelefonszamok.Skip(1).Any()) { foreach (var publikusTelefonszam in publikusTelefonszamok.Skip(1)) { AddErrorMessage(errorDictionary, publikusTelefonszam.TextBoxId, AdminisztracioResource.PublikusTelefonCsakEgyLehet); } } foreach (var email in model.Email.Where(e => e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted)) { if (!email.Tipus.HasValue) { AddErrorMessage(errorDictionary, email.ComboBoxId, AdminisztracioResource.EmailTipusKotelezo); } if (email.IsPublic && email.Alapertelmezett) { AddErrorMessage(errorDictionary, email.TextBoxId, AdminisztracioResource.PublikusEmailNemLehetAlapertelmezett); } if (string.IsNullOrWhiteSpace(email.EmailCim) || !email.EmailCim.IsValidEmail()) { AddErrorMessage(errorDictionary, email.TextBoxId, ErrorResource.EMailCimFormatumaNemMegfelelo); } else { if (email.EmailCim.Length > General.EmailMaximumKarakterekSzama) { AddErrorMessage(errorDictionary, email.TextBoxId, ErrorResource.EmailMax0Karakter); } } } var nemToroltEmailek = model.Email.Where(x => x.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Select(x => x.EmailCim_Input).ToList(); if (nemToroltEmailek.Distinct().Count() != nemToroltEmailek.Count()) { AddErrorMessage(errorDictionary, "Error", ErrorResource.AMegadottEmailcimMarRogzitveVan); } var nemToroltTelefonszamok = model.Telefon.Where(x => x.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Select(x => x.Telefonszam).ToList(); if (nemToroltTelefonszamok.Distinct().Count() != nemToroltTelefonszamok.Count()) { AddErrorMessage(errorDictionary, "Error", ErrorResource.AMegadottTelefonszamMarRogzitveVan); } foreach (var telefon in model.Telefon.Where(t => t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted)) { if (!telefon.Tipus.HasValue) { AddErrorMessage(errorDictionary, telefon.ComboBoxId, AdminisztracioResource.TelefonTipusKotelezo); } if (telefon.IsPublic && telefon.Alapertelmezett) { AddErrorMessage(errorDictionary, telefon.TextBoxId, AdminisztracioResource.PublikusTelefonNemLehetAlapertelmezett); } if (string.IsNullOrWhiteSpace(telefon.Telefonszam) || !telefon.Telefonszam.IsValidPhone()) { AddErrorMessage(errorDictionary, telefon.TextBoxId, ErrorResource.ATelefonszamFormatumaNemMegfelelo); } } return !errorDictionary.Any(); } private bool ValidateBankszamlaszamAdatok(BankszamlaCo model, out Dictionary> errorDictionary) { errorDictionary = new Dictionary>(); var errorText = BankszamlaLogic.KitoltottsegValidacio(model.BankszamlaSzam, model.BankszamlaTulajdonos, model.BankszamlaTulajdonosNeve); if (!string.IsNullOrWhiteSpace(errorText)) { AddErrorMessage(errorDictionary, nameof(model.BankszamlaSzam), errorText); } else { // NOTE: Üres a bankszámlaszám = törölni akarjuk a meglevő adatokat if (string.IsNullOrWhiteSpace(model.BankszamlaSzam)) { return true; } errorText = BankszamlaLogic.CDVValidacio(model.BankszamlaSzam); if (!string.IsNullOrWhiteSpace(errorText)) { AddErrorMessage(errorDictionary, nameof(model.BankszamlaSzam), errorText); } } return !errorDictionary.Any(); } private void AddErrorMessage(Dictionary> errorDictionary, string key, string message) { if (!errorDictionary.TryGetValue(key, out var messages)) { messages = new List(); errorDictionary.Add(key, messages); } messages.Add(message); } private bool ValidateEgyHaztartasbanElok(EgyhaztartasbanElokModel model, out Dictionary> errorDictionary) { errorDictionary = new Dictionary>(); foreach (var item in model.Sorok.Where(t => !t.isDeleted)) { if (string.IsNullOrWhiteSpace(item.Nev)) { AddErrorMessage(errorDictionary, $"Nev_{item.RowNumber}", string.Format(FelhasznalokResource.NevKotelezo, item.RowNumber)); } if (string.IsNullOrWhiteSpace(item.AnyjaNev)) { AddErrorMessage(errorDictionary, $"AnyjaNev_{item.RowNumber}", string.Format(FelhasznalokResource.AnyjaNeveKotelezo, item.RowNumber)); } if (string.IsNullOrWhiteSpace(item.SzuletesiHely)) { AddErrorMessage(errorDictionary, $"SzuletesiHely_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiHelyKotelezo, item.RowNumber)); } if (!item.SzuletesiIdo.HasValue) { AddErrorMessage(errorDictionary, $"SzuletesiIdo_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiIdoKotelezo, item.RowNumber)); } if (item.SzuletesiIdo.HasValue && (item.SzuletesiIdo < DateTime.Today.AddYears(-150) || item.SzuletesiIdo > DateTime.Today)) { AddErrorMessage(errorDictionary, $"SzuletesiIdo_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiIdoNemValid, item.RowNumber)); } if (!item.RokonsagiFok.HasValue) { AddErrorMessage(errorDictionary, $"RokonsagiFok_{item.RowNumber}", string.Format(FelhasznalokResource.RokonsagiFokKotelezo, item.RowNumber)); } if (string.IsNullOrWhiteSpace(item.Taj)) { AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamKotelezo, item.RowNumber)); } else { if (item.Taj.Length != 9) { AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszam9Karakter, item.RowNumber)); } else if (string.Equals(item.Taj, "000000000", StringComparison.Ordinal)) { AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamCsupaNulla, item.RowNumber)); } else { var tajszam = new int[9]; for (var x = 0; x < tajszam.Length; x++) { tajszam[x] = Convert.ToInt32(item.Taj.Substring(x, 1)); } if ((((tajszam[1] + tajszam[3] + tajszam[5] + tajszam[7]) * 7) + ((tajszam[0] + tajszam[2] + tajszam[4] + tajszam[6]) * 3)) % 10 != tajszam[8]) { AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamNemErvenyes, item.RowNumber)); } } } if (string.IsNullOrWhiteSpace(item.Telefon)) { AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamKotelezo, item.RowNumber)); } else { var match = new Regex(RegularExpressions.Telefon).Match(item.Telefon); if (!match.Success) { AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamHibas, item.RowNumber)); } else if (!new PhoneAttribute().IsValid(item.Telefon)) { AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamHibas, item.RowNumber)); } } if (string.IsNullOrWhiteSpace(item.Email)) { AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimKotelezo, item.RowNumber)); } else { var tempByteArray = Encoding.GetEncoding(EncodingName.ISO_8859_8).GetBytes(item.Email); var encodedString = Encoding.UTF8.GetString(tempByteArray); if (!encodedString.Equals(item.Email)) { AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimHibas, item.RowNumber)); } else if (!new EmailAddressAttribute().IsValid(item.Email)) { AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimHibas, item.RowNumber)); } } } return !errorDictionary.Any(); } #endregion } }