Exemplo n.º 1
0
        public Tuple <Guid?, Guid?> GetIdsFromPosData(BitPayLight.Models.Invoice.Invoice invoice)
        {
            Guid?orgId  = null;
            Guid?userId = null;

            if (invoice != null && !string.IsNullOrWhiteSpace(invoice.PosData) && invoice.PosData.Contains(":"))
            {
                var mainParts = invoice.PosData.Split(',');
                foreach (var mainPart in mainParts)
                {
                    var parts = mainPart.Split(':');
                    if (parts.Length > 1 && Guid.TryParse(parts[1], out var id))
                    {
                        if (parts[0] == "userId")
                        {
                            userId = id;
                        }
                        else if (parts[0] == "organizationId")
                        {
                            orgId = id;
                        }
                    }
                }
            }

            return(new Tuple <Guid?, Guid?>(orgId, userId));
        }
Exemplo n.º 2
0
        private DateTime GetTransactionDate(BitPayLight.Models.Invoice.Invoice invoice)
        {
            var transactions = invoice.Transactions?.Where(t => t.Type == null &&
                                                           !string.IsNullOrWhiteSpace(t.Confirmations) && t.Confirmations != "0");

            if (transactions != null && transactions.Count() == 1)
            {
                return(DateTime.Parse(transactions.First().ReceivedTime, CultureInfo.InvariantCulture,
                                      DateTimeStyles.RoundtripKind));
            }
            return(CoreHelpers.FromEpocMilliseconds(invoice.CurrentTime));
        }
Exemplo n.º 3
0
        public BitPayLight.Models.Invoice.Invoice ToBitpayInvoice(GlobalSettings globalSettings)
        {
            var inv = new BitPayLight.Models.Invoice.Invoice
            {
                Price       = Convert.ToDouble(Amount.Value),
                Currency    = "USD",
                RedirectUrl = ReturnUrl,
                Buyer       = new BitPayLight.Models.Invoice.Buyer
                {
                    Email = Email,
                    Name  = Name
                },
                NotificationUrl       = globalSettings.BitPay.NotificationUrl,
                FullNotifications     = true,
                ExtendedNotifications = true
            };

            var posData = string.Empty;

            if (UserId.HasValue)
            {
                posData = "userId:" + UserId.Value;
            }
            else if (OrganizationId.HasValue)
            {
                posData = "organizationId:" + OrganizationId.Value;
            }

            if (Credit)
            {
                posData     += ",accountCredit:1";
                inv.ItemDesc = "Bitwarden Account Credit";
            }
            else
            {
                inv.ItemDesc = "Bitwarden";
            }

            inv.PosData = posData;
            return(inv);
        }
Exemplo n.º 4
0
 public Task <BitPayLight.Models.Invoice.Invoice> CreateInvoiceAsync(BitPayLight.Models.Invoice.Invoice invoice)
 {
     return(_bpClient.CreateInvoice(invoice));
 }
Exemplo n.º 5
0
 private bool IsAccountCredit(BitPayLight.Models.Invoice.Invoice invoice)
 {
     return(invoice != null && invoice.PosData != null && invoice.PosData.Contains("accountCredit:1"));
 }