public IActionResult GenerateSignature([FromQuery] GenerateSignatureRequest request)
        {
            var hmacValidator = new HmacValidator();

            var stringToSign = hmacValidator.BuildSigningString(GetDictonaryFromRequest(request));
            var signature    = hmacValidator.CalculateSignature(stringToSign, request.SigningKey);

            return(Ok(signature));
        }
 private Dictionary <string, string> GetDictonaryFromRequest(GenerateSignatureRequest request)
 {
     return(new Dictionary <string, string>
     {
         { nameof(request.MerchantTransactionId), request.MerchantTransactionId },
         { nameof(request.Amount), request.Amount.ToString("F", CultureInfo.InvariantCulture) },
         { nameof(request.CardNumber), request.CardNumber },
         { nameof(request.ExpiryMonth), request.ExpiryMonth.ToString() },
         { nameof(request.ExpiryYear), request.ExpiryYear.ToString() },
         { nameof(request.Cvv), request.Cvv },
         { nameof(request.Currency), request.Currency }
     });
 }