49 lines
1.7 KiB
C#
49 lines
1.7 KiB
C#
using HashidsNet;
|
|
|
|
namespace Knoks.Core.Entities
|
|
{
|
|
public static class Uid
|
|
{
|
|
private static readonly Hashids LeadHashids = new Hashids("0oSe-yc2M7_5hQro!pxp45d", 8);
|
|
private static readonly Hashids LoanRequestHashids = new Hashids("l_EOC36t#4yyI6D-b36TyJ5", 8);
|
|
private static readonly Hashids LoanRequestAndUserHashids = new Hashids("8#TGF(6t&8jkU8P+W89Yqz3", 8);
|
|
|
|
//-- Lead Uid --
|
|
public static string Lead(long? leadId)
|
|
{
|
|
return leadId == null ? null : LeadHashids.EncodeLong(leadId.Value);
|
|
}
|
|
|
|
public static long? Lead(string leadUid)
|
|
{
|
|
return leadUid == null ? null : (long?)LeadHashids.DecodeLong(leadUid)[0];
|
|
}
|
|
|
|
//-- LoanRequest Uid --
|
|
public static string LoanRequest(long? loanRequestId)
|
|
{
|
|
return loanRequestId == null ? null : LoanRequestHashids.EncodeLong(loanRequestId.Value);
|
|
}
|
|
|
|
public static long? LoanRequest(string loanRequestUid)
|
|
{
|
|
return loanRequestUid == null ? null : (long?)LoanRequestHashids.DecodeLong(loanRequestUid)[0];
|
|
}
|
|
|
|
//-- User & LoanRequest Uid --
|
|
public static string LoanRequestAndUser(long loanRequestId, long? userId)
|
|
{
|
|
return userId.HasValue ?
|
|
LoanRequestAndUserHashids.EncodeLong(loanRequestId, userId.Value) :
|
|
LoanRequestAndUserHashids.EncodeLong(loanRequestId);
|
|
}
|
|
|
|
public static void LoanRequestAndUser(string loanRequestUid, out long loanRequestId, out long? userId)
|
|
{
|
|
var arr = LoanRequestAndUserHashids.DecodeLong(loanRequestUid);
|
|
loanRequestId = arr[0];
|
|
userId = arr.Length == 1 ? null : (long?)arr[1];
|
|
}
|
|
}
|
|
}
|