private IActionResult Validate(PaymentRequestBaseData data)
        {
            if (data is null)
            {
                return(BadRequest());
            }
            if (data.Amount <= 0)
            {
                ModelState.AddModelError(nameof(data.Amount), "Please provide an amount greater than 0");
            }

            if (string.IsNullOrEmpty(data.Currency) ||
                _currencyNameTable.GetCurrencyData(data.Currency, false) == null)
            {
                ModelState.AddModelError(nameof(data.Currency), "Invalid currency");
            }

            if (string.IsNullOrEmpty(data.Title))
            {
                ModelState.AddModelError(nameof(data.Title), "Title is required");
            }

            if (!string.IsNullOrEmpty(data.CustomCSSLink) && data.CustomCSSLink.Length > 500)
            {
                ModelState.AddModelError(nameof(data.CustomCSSLink), "CustomCSSLink is 500 chars max");
            }

            return(!ModelState.IsValid ? this.CreateValidationError(ModelState) : null);
        }
        public static bool SetBlob(this PaymentRequestData paymentRequestData, PaymentRequestBaseData blob)
        {
            var original = new Serializer(null).ToString(paymentRequestData.GetBlob());
            var newBlob  = new Serializer(null).ToString(blob);

            if (original == newBlob)
            {
                return(false);
            }
            paymentRequestData.Blob = ZipUtils.Zip(newBlob);
            return(true);
        }