protected override void Parse(Stream s) { BinaryReader r = new BinaryReader(s); /* * This RCOL chunk has no Tag * tag = r.ReadUInt32(); * if (checking) if (tag != (uint)FOURCC(TAG)) * throw new InvalidDataException(String.Format("Invalid Tag read: '{0}'; expected: '{1}'; at 0x{2:X8}", FOURCC(tag), TAG, s.Position));/****/ version = r.ReadUInt32(); adjustments = new AdjustmentList(handler, s); }
public override Stream UnParse() { MemoryStream ms = new MemoryStream(); BinaryWriter w = new BinaryWriter(ms); // w.Write(tag);// No Tag w.Write(version); if (adjustments == null) { adjustments = new AdjustmentList(handler); } adjustments.UnParse(ms); return(ms); }
internal override void ReadXml(XmlTextReader reader) { while (reader.Read()) { // End of invoice element, get out of here if (reader.Name == "invoice" && reader.NodeType == XmlNodeType.EndElement) break; if (reader.NodeType != XmlNodeType.Element) continue; switch (reader.Name) { case "account": var accountHref = reader.GetAttribute("href"); AccountCode = Uri.UnescapeDataString(accountHref.Substring(accountHref.LastIndexOf("/") + 1)); break; case "subscription": var subHref = reader.GetAttribute("href"); SubscriptionUuid = Uri.UnescapeDataString(subHref.Substring(subHref.LastIndexOf("/") + 1)); break; case "uuid": Uuid = reader.ReadElementContentAsString(); break; case "state": State = reader.ReadElementContentAsString().ParseAsEnum<InvoiceState>(); break; case "invoice_number": int invNumber; if (Int32.TryParse(reader.ReadElementContentAsString(), out invNumber)) InvoiceNumber = invNumber; break; case "po_number": PoNumber = reader.ReadElementContentAsString(); break; case "vat_number": VatNumber = reader.ReadElementContentAsString(); break; case "subtotal_in_cents": SubtotalInCents = reader.ReadElementContentAsInt(); break; case "tax_in_cents": TaxInCents = reader.ReadElementContentAsInt(); break; case "total_in_cents": TotalInCents = reader.ReadElementContentAsInt(); break; case "currency": Currency = reader.ReadElementContentAsString(); break; case "created_at": DateTime createdAt; if (DateTime.TryParse(reader.ReadElementContentAsString(), out createdAt)) CreatedAt = createdAt; break; case "closed_at": DateTime closedAt; if (DateTime.TryParse(reader.ReadElementContentAsString(), out closedAt)) ClosedAt = closedAt; break; case "tax_type": TaxType = reader.ReadElementContentAsString(); break; case "tax_rate": TaxRate = reader.ReadElementContentAsDecimal(); break; case "net_terms": NetTerms = reader.ReadElementContentAsInt(); break; case "collection_method": CollectionMethod = reader.ReadElementContentAsString(); break; case "line_items": // overrite existing value with the Recurly API response Adjustments = new AdjustmentList(); Adjustments.ReadXml(reader); break; case "transactions": // overrite existing value with the Recurly API response Transactions = new TransactionList(); Transactions.ReadXml(reader); break; } } }
internal Invoice() { Adjustments = new AdjustmentList(); Transactions = new TransactionList(); }
/// <summary> /// Gets all adjustments for this account, by type /// </summary> /// <param name="type">Adjustment type to retrieve. Optional, default: All.</param> /// <param name="state">State of the Adjustments to retrieve. Optional, default: Any.</param> /// <returns></returns> public RecurlyList<Adjustment> GetAdjustments(Adjustment.AdjustmentType type = Adjustment.AdjustmentType.All, Adjustment.AdjustmentState state = Adjustment.AdjustmentState.Any) { var adjustments = new AdjustmentList(); var statusCode = Client.Instance.PerformRequest(Client.HttpRequestMethod.Get, UrlPrefix + Uri.EscapeUriString(AccountCode) + "/adjustments/" + Build.QueryStringWith(Adjustment.AdjustmentState.Any == state ? "" : "state=" + state.ToString().EnumNameToTransportCase()) .AndWith(Adjustment.AdjustmentType.All == type ? "" : "type=" + type.ToString().EnumNameToTransportCase()) , adjustments.ReadXmlList); return statusCode == HttpStatusCode.NotFound ? null : adjustments; }
public SlotAdjust(EventHandler handler, uint version, IEnumerable <Adjustment> adjustments) : base(handler, null) { this.version = version; this.adjustments = new AdjustmentList(handler, adjustments); }
internal override void ReadXml(XmlTextReader reader) { while (reader.Read()) { // End of invoice element, get out of here if (reader.Name == "invoice" && reader.NodeType == XmlNodeType.EndElement) break; if (reader.NodeType != XmlNodeType.Element) continue; switch (reader.Name) { case "account": var accountHref = reader.GetAttribute("href"); AccountCode = Uri.UnescapeDataString(accountHref.Substring(accountHref.LastIndexOf("/") + 1)); break; case "subscription": var subHref = reader.GetAttribute("href"); SubscriptionUuid = Uri.UnescapeDataString(subHref.Substring(subHref.LastIndexOf("/") + 1)); break; case "original_invoice": var originalInvoiceHref = reader.GetAttribute("href"); var invoiceNumber = Uri.UnescapeDataString(originalInvoiceHref.Substring(originalInvoiceHref.LastIndexOf("/") + 1)); MatchCollection matches = Regex.Matches(invoiceNumber, "([^\\d]{2})(\\d+)"); if (matches.Count == 1) { OriginalInvoiceNumberPrefix = matches[0].Groups[1].Value; OriginalInvoiceNumber = int.Parse(matches[0].Groups[2].Value); } else { OriginalInvoiceNumber = int.Parse(invoiceNumber); } break; case "uuid": Uuid = reader.ReadElementContentAsString(); break; case "state": State = reader.ReadElementContentAsString().ParseAsEnum<InvoiceState>(); break; case "invoice_number": int invNumber; if (Int32.TryParse(reader.ReadElementContentAsString(), out invNumber)) InvoiceNumber = invNumber; break; case "invoice_number_prefix": InvoiceNumberPrefix = reader.ReadElementContentAsString(); break; case "po_number": PoNumber = reader.ReadElementContentAsString(); break; case "vat_number": VatNumber = reader.ReadElementContentAsString(); break; case "subtotal_in_cents": SubtotalInCents = reader.ReadElementContentAsInt(); break; case "tax_in_cents": TaxInCents = reader.ReadElementContentAsInt(); break; case "total_in_cents": TotalInCents = reader.ReadElementContentAsInt(); break; case "currency": Currency = reader.ReadElementContentAsString(); break; case "created_at": DateTime createdAt; if (DateTime.TryParse(reader.ReadElementContentAsString(), out createdAt)) CreatedAt = createdAt; break; case "closed_at": DateTime closedAt; if (DateTime.TryParse(reader.ReadElementContentAsString(), out closedAt)) ClosedAt = closedAt; break; case "tax_type": TaxType = reader.ReadElementContentAsString(); break; case "tax_rate": TaxRate = reader.ReadElementContentAsDecimal(); break; case "tax_region": TaxRegion = reader.ReadElementContentAsString(); break; case "net_terms": NetTerms = reader.ReadElementContentAsInt(); break; case "collection_method": CollectionMethod = reader.ReadElementContentAsString(); break; case "customer_notes": CustomerNotes = reader.ReadElementContentAsString(); break; case "terms_and_conditions": TermsAndConditions = reader.ReadElementContentAsString(); break; case "vat_reverse_charge_notes": VatReverseChargeNotes = reader.ReadElementContentAsString(); break; case "line_items": // overrite existing value with the Recurly API response Adjustments = new AdjustmentList(); Adjustments.ReadXml(reader); break; case "transactions": // overrite existing value with the Recurly API response Transactions = new TransactionList(); Transactions.ReadXml(reader); break; case "address": Address = new Address(reader); break; } } }
public Invoice() { Adjustments = new AdjustmentList(); Transactions = new TransactionList(); }
/// <summary> /// Gets all adjustments for this account, by type /// </summary> /// <param name="type">Adjustment type to retrieve</param> /// <returns></returns> public AdjustmentList GetAdjustments(Adjustment.AdjustmentType type = Adjustment.AdjustmentType.all, Adjustment.AdjustmentState state = Adjustment.AdjustmentState.any) { AdjustmentList l = new AdjustmentList(); HttpStatusCode statusCode = Client.PerformRequest(Client.HttpRequestMethod.Get, Account.UrlPrefix + System.Uri.EscapeUriString(this.AccountCode) + "/adjustments/?" + (Adjustment.AdjustmentState.any == state ? "" : "state=" + state.ToString()) + (Adjustment.AdjustmentType.all == type ? "" : "&type=" + type.ToString()) , new Client.ReadXmlListDelegate(l.ReadXmlList)); if (statusCode == HttpStatusCode.NotFound) return null; return l; }