A lightweight and extensible .NET library for performing Turkish Republic Identity Number (TCKN) verification.
$ dotnet add package Codergies.VerifyNationRepublic of Turkey Identity Number (TCKN) is a lightweight and extensible .NET library developed to perform authentication.
Using Package Manager Console:
Install-Package VerifyNation
Using the .NET CLI:
dotnet add package VerifyNation
using VerifyNation;
// Validation process
string tckn = "10000000146";
var validator = new VerifyNation.Core.TcknValidator();
var result = validator.Validate(tckn);
if (result.IsValid)
{
Console.WriteLine("TCKN is valid.");
}
else
{
Console.WriteLine("TCKN is invalid: " + string.Join(", ", result.ErrorMessages));
}
// Startup.cs or Program.cs
using VerifyNation.Extensions;
// Extension on IServiceCollection
services.AddTcknValidator();
// In Controller or Service class
public class MyService
{
private readonly IValidator<string> _tcknValidator;
public MyService(IValidator<string> tcknValidator)
{
_tcknValidator = tcknValidator;
}
public void ValidateTckn(string tckn)
{
var result = _tcknValidator.Validate(tckn);
// ...processes
}
}
using VerifyNation.Exceptions;
try
{
var validator = new VerifyNation.Core.TcknValidator();
var result = validator.ValidateWithException("invalid-tckn");
// Works on successful verification
}
catch (ValidationException ex)
{
// Works in case of error
Console.WriteLine($"Validation error: {ex.Message}");
Console.WriteLine($"Errors: {string.Join(", ", ex.Errors)}");
}TcknValidator includes the following validation rules:
using VerifyNation.Abstract;
using VerifyNation.Core;
// Defining a custom rule
public class CustomTcknRule : IValidationRule<string>
{
public bool Validate(IValidationContext context, string input)
{
// Custom validation logic
return true; // or false
}
}
// Using the special rule
var validator = new TcknValidator.Core.TcknValidator();
validator.AddRule(new CustomTcknRule());
var result = validator.Validate("10000000146");This project is licensed under the MIT license. For more information, see LICENSE.
To contribute, please open an issue or submit a pull request.