63 lines
2.5 KiB
C#
63 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.Core.Logic
|
|
{
|
|
public static class BankszamlaLogic
|
|
{
|
|
private static readonly int[] s_sulyok = new int[] { 9, 7, 3, 1, 9, 7, 3, 1 };
|
|
|
|
public static string KitoltottsegValidacio(string bankszamlaSzam, int? bankszamlaTulajdonosTipusId, string bankszamlaTulajdonosNeve)
|
|
{
|
|
var parList = new List<string>()
|
|
{
|
|
bankszamlaSzam,
|
|
bankszamlaTulajdonosTipusId.ToString(),
|
|
bankszamlaTulajdonosNeve,
|
|
};
|
|
if ((parList.All(x => !string.IsNullOrWhiteSpace(x))) || (parList.All(x => string.IsNullOrWhiteSpace(x))))
|
|
{
|
|
return null;
|
|
}
|
|
return ErrorResource.BankszamlaAdatokKitoltottsegeHibas;
|
|
}
|
|
|
|
public static string CDVValidacio(string bankszamlaSzam)
|
|
{
|
|
var bankszamlaNonSpace = bankszamlaSzam.Replace(" ", "");
|
|
var komponensek = bankszamlaNonSpace.Split("-".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
|
if ((!komponensek.Skip(1).Any()) || (komponensek.Skip(3).Any()) || komponensek.Any(x => x.Length < 8))
|
|
{
|
|
return ErrorResource.NemMegfeleloSzamuSzamjegyuSzamlaszam;
|
|
}
|
|
|
|
var replBankszamlaSzam = bankszamlaNonSpace.Replace("-", "").Select(x => int.Parse(x.ToString())).ToList();
|
|
int szumProd = replBankszamlaSzam.Take(8).Select((n, i) => n * s_sulyok[i]).Sum();
|
|
if ((szumProd % 10) != 0)
|
|
{
|
|
return ErrorResource.NemMegfeleloFormatumuElsoOktetSzamlaszamban;
|
|
}
|
|
szumProd = replBankszamlaSzam.Select((n, i) => n * s_sulyok[i % 8]).Sum();
|
|
if ((szumProd % 10) != 0)
|
|
{
|
|
return string.Format(ErrorResource.NemMegfeleloFormatumXOktetSzamlaszamban, komponensek.Length);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static List<string> StringSplitByChunkSize(string str, int chunkSize)
|
|
{
|
|
return Enumerable.Range(0, str.Length / chunkSize)
|
|
.Select(i => str.Substring(i * chunkSize, chunkSize)).ToList();
|
|
}
|
|
|
|
public static bool IsBankAccountNumberValid(string bankAccountNumber)
|
|
{
|
|
var bankAccountNumberRegex = new Regex(Constants.General.BankAccountNumberRegexPattern);
|
|
return bankAccountNumberRegex.IsMatch(bankAccountNumber);
|
|
}
|
|
}
|
|
}
|