using System; namespace Kreta.BusinessLogic.Extensions { public static class FelhasznaloExtensions { public static bool IsValidTajSzam(this string tajSzam, bool isNullValid = false) { if (!string.IsNullOrWhiteSpace(tajSzam)) { if (tajSzam.Length != 9) { return false; } var tajSzamSzamok = new int[9]; for (int i = 0; i <= 8; i++) { if (!int.TryParse(tajSzam[i].ToString(), out int tajSzamSzam)) { return false; } tajSzamSzamok[i] = tajSzamSzam; } if ((((tajSzamSzamok[1] + tajSzamSzamok[3] + tajSzamSzamok[5] + tajSzamSzamok[7]) * 7) + ((tajSzamSzamok[0] + tajSzamSzamok[2] + tajSzamSzamok[4] + tajSzamSzamok[6]) * 3)) % 10 != tajSzamSzamok[8]) { return false; } return true; } return isNullValid; } public static bool IsValidOktatasiAzonosito(this string oktatasiAzonosito) { if (!string.IsNullOrWhiteSpace(oktatasiAzonosito)) { if (oktatasiAzonosito.Length != 11) { return false; } var oktatasiAzonositoSzamok = new int[11]; for (int i = 0; i <= 10; i++) { if (!int.TryParse(oktatasiAzonosito[i].ToString(), out int oktatasiAzonositoSzam)) { return false; } if (i == 0 && oktatasiAzonositoSzam != 7) { return false; } oktatasiAzonositoSzamok[i] = oktatasiAzonositoSzam; } int oktatasiAzonositoSzorzat = 0; for (int i = 1; i <= 10; i++) { oktatasiAzonositoSzorzat += oktatasiAzonositoSzamok[i - 1] * i; } if (oktatasiAzonositoSzorzat % 11 != oktatasiAzonositoSzamok[10]) { return false; } return true; } return false; } public static bool IsValidAdoazonositoJel(this string adoazonositoJel, DateTime szuletesiDatum, bool isNullValid = false) { if (!string.IsNullOrWhiteSpace(adoazonositoJel)) { if (adoazonositoJel.Length != 10) { return false; } var adoazonositoJelSzamok = new int[10]; for (int i = 0; i <= 9; i++) { if (!int.TryParse(adoazonositoJel[i].ToString(), out int adoazonositoJelSzam)) { return false; } if (i == 0 && adoazonositoJelSzam != 8) { return false; } adoazonositoJelSzamok[i] = adoazonositoJelSzam; } var szuletesiDatumKontroll = new DateTime(1867, 01, 01); var szuletesiDatumKulonbseg = szuletesiDatum - szuletesiDatumKontroll; var szuletesiDatumAdoazonositoJel = adoazonositoJelSzamok[1].ToString() + adoazonositoJelSzamok[2].ToString() + adoazonositoJelSzamok[3].ToString() + adoazonositoJelSzamok[4].ToString() + adoazonositoJelSzamok[5].ToString(); if (!int.TryParse(szuletesiDatumAdoazonositoJel, out int szuletesiDatumAdoazonositoJelSzam)) { return false; } if (szuletesiDatumAdoazonositoJelSzam != szuletesiDatumKulonbseg.Days) { return false; } int adoazonositoJelSzorzat = 0; for (int i = 1; i <= 9; i++) { adoazonositoJelSzorzat += adoazonositoJelSzamok[i - 1] * i; } if (adoazonositoJelSzorzat % 11 != adoazonositoJelSzamok[9]) { return false; } return true; } return isNullValid; } } }