Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }