public IEnumerable <PaymentListResult> ListAll() { var allList = new PaymentListResult(); int?nextPage = null; do { allList = this.List(nextPage); nextPage = Int32.Parse(allList.Meta.CurrentPage) + 1; yield return(allList); } while (allList.Meta.NextPage != null); }
public PaymentListResult List(int?page = null) { var finalUrl = page == null ? this.MakePaymentUrl : this.MakePaymentUrl + "?page=" + page.ToString(); var httpWebRequest = (HttpWebRequest)WebRequest.Create(finalUrl); httpWebRequest.ContentType = "application/json; charset=utf-8"; httpWebRequest.Method = "GET"; httpWebRequest.Credentials = new NetworkCredential(ApiKey, ApiKey); try { var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); var rs = this.js.Deserialize <PaymentListResult>(result); //JObject.Parse(result); var listResult = new PaymentListResult() { Payments = new List <PaymentResult>(), Meta = new MetaResult() }; var paymentList = rs.Payments;//rs["payments"]; foreach (var item in paymentList) { PaymentResult payment = new PaymentResult { Id = item.Id, // (string)item["id"], Status = item.Status, //(string)item["status"], Amount = item.Amount, //(int)item["amount"], Description = item.Description, //(string)item["description"], Currency = item.Currency, // (string)item["currency"], CallbackUrl = item.CallbackUrl, // (string)rs["callback_url"], AmountFormat = item.AmountFormat, //(string)item["amount_format"], CreatedAt = item.CreatedAt, // (string)item["created_at"], Fee = item.Fee, //(string)item["fee"], FeeFormat = item.FeeFormat, // (string)item["fee_format"], InvoiceId = item.InvoiceId, //(string)item["invoice_id"], Ip = item.Ip, //(string)item["ip"], Refunded = item.Refunded, //(string)item["refunded"], RefundedAt = item.RefundedAt, //(string)item["refunded_at"], UpdatedAt = item.UpdatedAt //(string)item["updated_at"] }; if ("sadad" == item.Source.Type) //(string)item["source"]["type"] { //payment.Source = new SadadType() //{ // Type = (string)item["source"]["type"], // Username = (string)item["source"]["username"], // TransactionUrl = (string)item["source"]["transaction_url"], // ErrorCode = (string)item["source"]["error_code"], // TransactionId = (string)item["source"]["transaction_id"], // Message = (string)item["source"]["message"] //}; payment.Source = new SadadType() { Type = item.Source.Type, //(string)rs["source"]["type"], Username = item.Source.UserName, //(string)rs["source"]["username"], TransactionUrl = item.Source.Transaction_Url, //(string)rs["source"]["transaction_url"], ErrorCode = item.Source.Error_Code, //(string)rs["source"]["error_code"], TransactionId = item.Source.Transaction_Id, //(string)rs["source"]["transaction_id"], Message = item.Source.Message //(string)rs["source"]["message"] }; } if ("creditcard" == item.Source.Type)//(string)item["source"]["type"] { //payment.Source = new CreditCard() //{ // Type = (string)item["source"]["type"], // Company = (string)item["source"]["company"], // Name = (string)item["source"]["name"], // Number = (string)item["source"]["number"], // Message = (string)item["source"]["message"], // TransactionUrl = (string)item["source"]["transaction_url"], //}; payment.Source = new CreditCard() { Type = item.Source.Type, // (string)rs["source"]["type"], Company = item.Source.Company, //(string)rs["source"]["company"], Name = item.Source.Name, //(string)rs["source"]["name"], Number = item.Source.Number, //(string)rs["source"]["number"], Message = item.Source.Message, //(string)rs["source"]["message"], TransactionUrl = item.Source.Transaction_Url //(string)rs["source"]["transaction_url"], }; } listResult.Payments.Add(payment); } //rs listResult.Meta.CurrentPage = rs.Meta.CurrentPage; //(string)rs["meta"]["current_page"]; listResult.Meta.NextPage = rs.Meta.NextPage; //(string)rs["meta"]["next_page"]; listResult.Meta.PrevPage = rs.Meta.PrevPage; //(string)rs["meta"]["prev_page"]; listResult.Meta.TotalCount = rs.Meta.TotalCount; //(string)rs["meta"]["total_pages"]; listResult.Meta.TotalPages = rs.Meta.TotalPages; //(string)rs["meta"]["total_count"]; return(listResult); } } catch (WebException webEx) { throw this.HandleRequestErrors(webEx); } }