Ejemplo n.º 1
0
        /// <summary>
        /// The invoice will be sent to YekPay gateway.
        /// </summary>
        public static IInvoiceBuilder UseYekPay(this IInvoiceBuilder builder, YekPayRequest yekPayRequest)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (yekPayRequest == null)
            {
                throw new ArgumentNullException(nameof(yekPayRequest));
            }

            builder.SetYekPayRequest(yekPayRequest);

            builder.SetGateway(YekPayGateway.Name);

            return(builder);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// The invoice will be sent to YekPay gateway.
        /// </summary>
        public static IInvoiceBuilder UseYekPay(this IInvoiceBuilder builder, Action <YekPayRequest> configureYekPay)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (configureYekPay == null)
            {
                throw new ArgumentNullException(nameof(configureYekPay));
            }

            var yekPayRequest = new YekPayRequest();

            configureYekPay(yekPayRequest);

            return(UseYekPay(builder, yekPayRequest));
        }
Ejemplo n.º 3
0
        internal static void SetYekPayRequest(this IInvoiceBuilder builder, YekPayRequest yekPayRequest)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (yekPayRequest == null)
            {
                throw new ArgumentNullException(nameof(yekPayRequest));
            }

            builder.AddFormatter(invoice =>
            {
                if (invoice.AdditionalData.ContainsKey(YekPayRequestKey))
                {
                    invoice.AdditionalData.Remove(YekPayRequestKey);
                }

                invoice.AdditionalData.Add(YekPayRequestKey, yekPayRequest);
            });
        }