140 lines
4.4 KiB
C#
140 lines
4.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|