Knocks/BackEnd/Knoks.Core/Entities/Uid.cs

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];
}
}
}