/// <summary> /// Request a direct payment session /// </summary> /// <param name="credentials">PagSeguro credentials</param> /// <returns><c cref="T:Uol.PagSeguro.CancelRequestResponse">Result</c></returns> public static Installments GetInstallments(Credentials credentials, Decimal amount, String cardBrand) { PagSeguroTrace.Info(String.Format(CultureInfo.InvariantCulture, "InstallmentService.GetInstallments() - begin")); try { using (HttpWebResponse response = HttpURLConnectionUtil.GetHttpGetConnection( BuildInstallmentURL(credentials, amount, cardBrand))) { using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) { Installments result = new Installments(); InstallmentsSerializer.Read(reader, result); PagSeguroTrace.Info(String.Format(CultureInfo.InvariantCulture, "InstallmentService.Register({0}) - end", result.ToString())); return result; } } } catch (ArgumentException exception) { PagSeguroServiceException pse = new PagSeguroServiceException(exception.Message); PagSeguroTrace.Error(String.Format(CultureInfo.InvariantCulture, "InstallmentService.Register() - error {0}", exception.Message)); throw pse; } catch (WebException exception) { PagSeguroServiceException pse = HttpURLConnectionUtil.CreatePagSeguroServiceException((HttpWebResponse)exception.Response); PagSeguroTrace.Error(String.Format(CultureInfo.InvariantCulture, "InstallmentService.Register() - error {0}", pse)); throw pse; } }
/// <summary> /// Read a direct payment session request result /// </summary> /// <param name="streamReader"></param> /// <param name="installments"></param> internal static void Read(XmlReader reader, Installments installments) { if (reader.IsEmptyElement) { XMLParserUtils.SkipNode(reader); return; } reader.ReadStartElement(SerializerHelper.Installments); reader.MoveToContent(); while (!reader.EOF) { if (XMLParserUtils.IsEndElement(reader, SerializerHelper.Installments)) { XMLParserUtils.SkipNode(reader); break; } if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case SerializerHelper.Installment: Installment installment = new Installment(); InstallmentSerializer.Read(reader, installment); installments.Add(installment); break; default: XMLParserUtils.SkipElement(reader); break; } } else { XMLParserUtils.SkipNode(reader); } } }