Thursday, November 13, 2025

Pick a property name already!

     const getLast4 = (c: any): string | undefined =>

        {
            if (c?.lastFourDigitsAccountNum && /^\d{4}$/.test(String(c.lastFourDigitsAccountNum)))
            {
                return String(c.lastFourDigitsAccountNum);
            }
            let v =
                c?.lastFourDigits ??
                c?.lastFour ??
                c?.last4 ??
                c?.cardLast4 ??
                c?.accountLast4 ??
                c?.last_digits ??
                c?.lastDigits ??
                undefined;

            if (!v || String(v).trim() === "")
            {
                const cand = [
                    c?.cardNumber,
                    c?.pan,
                    c?.maskedPan,
                    c?.maskedCard,
                    c?.accountNumber,
                    c?.maskedAccount,
                ].filter(Boolean);

                for (const s of cand)
                {
                    const m = String(s).match(/(\d{4})\D*$/);
                    if (m) { v = m[1]; break; }
                }
            }
            return v && /^\d{4}$/.test(String(v)) ? String(v) : undefined;
        };

Thursday, April 24, 2025

What the ELSE?

public SessionStateChangeResult StateChangeFlag
{
    get
    {
        if ( this.HasDeletedSession )
        {
            return SessionStateChangeResult.SourceMerged;
        }
        else
        {
            if ( this.HasMovedSession )
            {
                return SessionStateChangeResult.SourceMoved;
            }
            else
            {
                if ( this.HasNewSession )
                {
                    return SessionStateChangeResult.SourceUpdateNewDest;
                }
                else
                {
                    if ( this.HasUpdates )
                    {
                        return SessionStateChangeResult.SourceUpdateDestUpdate;
                    }
                    else
                    {
                        return SessionStateChangeResult.Invalid;
                    }
                }
            }
        }
    }
}