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)); }
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)); }
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); }
public Task <BitPayLight.Models.Invoice.Invoice> CreateInvoiceAsync(BitPayLight.Models.Invoice.Invoice invoice) { return(_bpClient.CreateInvoice(invoice)); }
private bool IsAccountCredit(BitPayLight.Models.Invoice.Invoice invoice) { return(invoice != null && invoice.PosData != null && invoice.PosData.Contains("accountCredit:1")); }