public Tuple <Guid?, Guid?> GetIdsFromPosData(NBitpayClient.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)); }
private DateTime GetTransactionDate(NBitpayClient.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(transactions.First().ReceivedTime.DateTime); } return(invoice.CurrentTime.DateTime); }
public NBitpayClient.Invoice ToBitpayClientInvoice(GlobalSettings globalSettings) { var inv = new NBitpayClient.Invoice { Price = Amount.Value, Currency = "USD", RedirectURL = ReturnUrl, BuyerEmail = Email, Buyer = new NBitpayClient.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); }
public Task <NBitpayClient.Invoice> CreateInvoiceAsync(NBitpayClient.Invoice invoice) { return(_bpClient.CreateInvoiceAsync(invoice)); }
private bool IsAccountCredit(NBitpayClient.Invoice invoice) { return(invoice != null && invoice.PosData != null && invoice.PosData.Contains("accountCredit:1")); }