/// <summary>
        /// Nubanks process account.
        /// </summary>
        /// <returns>The to account.</returns>
        private Account NubankToAccount()
        {
            //Scrapers abstraction
            Account account    = new Account();
            JObject jevents    = new JObject();
            JObject jbills     = new JObject();
            JObject jcustomer  = new JObject();
            JObject jpurchases = new JObject();

            // List<Purchase> purchase = new List<Purchase>();
            try
            {
                //get values JSON TOKENS
                jevents    = nubank.getEvents();
                jbills     = nubank.getBillsSummary();
                jcustomer  = nubank.getCustomer();
                jpurchases = nubank.getPurchases();

                //*************** Costumer informations costumers ******************
                JToken         _customer      = jcustomer["customer"];
                NubankCustomer nubankCustomer = _customer.ToObject <NubankCustomer>();
                Customer       customer       = new Customer();

                //Copy to customer
                customer.address_state            = nubankCustomer.address_state;
                customer.cpf                      = nubankCustomer.cpf;
                customer.email                    = nubankCustomer.email;
                customer.address_postcode         = nubankCustomer.address_postcode;
                customer.billing_address_line1    = nubankCustomer.billing_address_line1;
                customer.billing_address_state    = nubankCustomer.billing_address_state;
                customer.address_number           = nubankCustomer.address_number;
                customer.billing_address_city     = nubankCustomer.billing_address_city;
                customer.phone                    = nubankCustomer.phone;
                customer.billing_address_locality = nubankCustomer.billing_address_locality;
                customer.name                     = nubankCustomer.name;
                customer.nationality              = nubankCustomer.nationality;
                customer.billing_address_line2    = nubankCustomer.billing_address_line2;
                customer.printed_name             = nubankCustomer.printed_name;
                customer.preferred_name           = nubankCustomer.preferred_name;
                customer.address_country          = nubankCustomer.address_country;
                customer.address_line2            = nubankCustomer.address_line2;
                customer.billing_address_postcode = nubankCustomer.billing_address_postcode;
                customer.dob                      = nubankCustomer.dob;
                customer.id = nubankCustomer.id;
                customer.address_locality        = nubankCustomer.address_locality;
                customer.marital_status          = nubankCustomer.marital_status;
                customer.billing_address_country = nubankCustomer.billing_address_country;
                customer.address_line1           = nubankCustomer.address_line1;
                customer.gender = nubankCustomer.gender;
                customer.billing_address_number = nubankCustomer.billing_address_number;
                customer.reported_income        = util.ConvertValue(nubankCustomer.reported_income, 1);
                customer.mothers_name           = nubankCustomer.mothers_name;
                customer.invitations            = nubankCustomer.invitations;
                customer.address_city           = nubankCustomer.address_city;

                //Add in account
                account.customer = customer;


                try
                {
                    //*************** Transaction Compras ******************************
                    JToken          _purchases = jpurchases["transactions"];
                    IList <JToken>  lpurchases = _purchases.Children().ToList();
                    List <Purchase> purchase   = new List <Purchase>();

                    //Parser
                    foreach (JToken pur in lpurchases)
                    {
                        NubankPurchase nPurchases = pur.ToObject <NubankPurchase>();
                        Purchase       spurchase  = new Purchase();

                        spurchase.amount           = util.ConvertValue(nPurchases.amount);
                        spurchase.approved_reasons = nPurchases.approved_reasons;
                        spurchase.auth_code        = nPurchases.auth_code;
                        spurchase.category         = nPurchases.category;
                        spurchase.charges          = nPurchases.charges;
                        spurchase.country          = nPurchases.country;
                        spurchase.expires_on       = nPurchases.expires_on;
                        spurchase.mcc = nPurchases.mcc;
                        spurchase.original_merchant_name = nPurchases.original_merchant_name;
                        spurchase.precise_amount         = nPurchases.precise_amount;
                        spurchase.time           = nPurchases.time;
                        spurchase.time_wallclock = nPurchases.time_wallclock;
                        spurchase.type           = nPurchases.type;

                        purchase.Add(spurchase);
                    }

                    account.purchase = purchase;
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e);
                }

                //**************** Events ******************************************
                //Nodes tokens events
                JToken _customer_id = jevents["customer_id"];
                JToken _links       = jevents["_links"];
                JToken _updates     = jevents["updates"];
                JToken _events      = jevents["events"];
                JToken _as_of       = jevents["as_of"];

                //Get JSON events results
                //Get objects into a list
                List <JToken> events = _events.Children().ToList();
                //Serialize JSON results into .NET objects
                List <Events> scraper_events = new List <Events>();

                //PARSER  NUBANK to SCRAPER events
                foreach (JToken ev in events)
                {
                    NubankEvents nubank_event = ev.ToObject <NubankEvents>();
                    Events       scraper_ev   = new Events();

                    scraper_ev.category = nubank_event.category;
                    scraper_ev.title    = nubank_event.title;
                    if (nubank_event.amount != null)
                    {
                        scraper_ev.amount = util.ConvertValue(nubank_event.amount);
                    }
                    scraper_ev.time    = nubank_event.time;
                    scraper_ev.message = nubank_event.message;
                    scraper_ev.id      = nubank_event.id;

                    scraper_events.Add(scraper_ev);
                }

                //Copy Events to list scrapper
                account.events = scraper_events;

                //************  Card limit *****************
                string json_object_element = "amount";
                //In main json find in node JSON
                var events_amounts_changes = (from s in _events where s[json_object_element] != null select s[json_object_element]).ToList();
                //Last value setting
                string limite_do_cartao = null;

                //limite do cartao
                if (events_amounts_changes.Count() > 0)
                {
                    Double card_amount = Convert.ToDouble(events_amounts_changes.First().Value <string>());
                    //string card Value
                    limite_do_cartao = util.ConvertValue(card_amount.ToString());
                }

                //************** Bills summary ************************
                account.billsSummary = new BillsSummary()
                {
                    total_credits = limite_do_cartao
                };


                //############ Bills summary ####################################
                JToken       bills        = jbills["bills"];
                BillsSummary billsSummary = new BillsSummary();
                //get objects into a list Valor da fatura
                IList <JToken> lbills   = bills.Children().ToList();
                IList <JToken> summarys = (from s in bills where s["summary"] != null select s["summary"]).ToList();
                //Serialize JSON results into .NET objects
                NubankBillsSummary nubankBillsSummary = summarys[0].ToObject <NubankBillsSummary>();

                billsSummary.payments                = util.ConvertValue(nubankBillsSummary.payments, 1);
                billsSummary.interest_charge         = util.ConvertValue(nubankBillsSummary.interest_charge, 1);
                billsSummary.total_international     = nubankBillsSummary.total_international;
                billsSummary.due_date                = nubankBillsSummary.due_date;
                billsSummary.precise_minimum_payment = util.ConvertValue(nubankBillsSummary.precise_minimum_payment, 1);
                billsSummary.interest_reversal       = util.ConvertValue(nubankBillsSummary.interest_reversal, 1);
                billsSummary.close_date              = nubankBillsSummary.close_date;
                billsSummary.expenses                = nubankBillsSummary.expenses;
                billsSummary.total_credits           = util.ConvertValue(nubankBillsSummary.total_credits, 1);
                billsSummary.past_balance            = util.ConvertValue(nubankBillsSummary.past_balance, 1);
                billsSummary.effective_due_date      = nubankBillsSummary.effective_due_date;
                billsSummary.international_tax       = nubankBillsSummary.international_tax;
                billsSummary.tax                   = util.ConvertValue(nubankBillsSummary.tax, 1);
                billsSummary.adjustments           = util.ConvertValue(nubankBillsSummary.adjustments, 1);
                billsSummary.precise_total_balance = nubankBillsSummary.precise_total_balance;
                billsSummary.total_financed        = util.ConvertValue(nubankBillsSummary.total_financed, 1);
                billsSummary.total_balance         = util.ConvertValue(nubankBillsSummary.total_balance);
                billsSummary.interest_rate         = nubankBillsSummary.interest_rate;
                billsSummary.total_national        = nubankBillsSummary.total_national;
                billsSummary.previous_bill_balance = nubankBillsSummary.previous_bill_balance;
                billsSummary.interest              = util.ConvertValue(nubankBillsSummary.interest, 1);
                billsSummary.total_cumulative      = util.ConvertValue(nubankBillsSummary.total_cumulative);
                billsSummary.paid                  = util.ConvertValue(nubankBillsSummary.paid, 1);
                billsSummary.fees                  = util.ConvertValue(nubankBillsSummary.fees, 1);
                billsSummary.total_payments        = util.ConvertValue(nubankBillsSummary.total_payments, 1);
                billsSummary.minimum_payment       = util.ConvertValue(nubankBillsSummary.minimum_payment, 1);
                billsSummary.open_date             = nubankBillsSummary.open_date;
                billsSummary.total_accrued         = util.ConvertValue(nubankBillsSummary.total_accrued, 1);
                account.billsSummary               = billsSummary;
            }
            catch (Exception e)
            {
                throw e;
            }

            return(account);
        }
示例#2
0
        /// <summary>
        /// Gets the account.
        /// </summary>
        /// <returns>The account.</returns>
        /// <param name="login">Login.</param>
        public Account GetAccount(Login login)
        {
            Account account = new Account()
            {
            };
            Customer     customer     = new Customer();
            Purchase     purchase     = new Purchase();
            BillsSummary billsSummary = new BillsSummary();

            List <Events> events = new List <Events>()
            {
            };
            List <Purchase> purchases = new List <Purchase>();

            try
            {
                //########### Account info ####################################
                account.bank   = login.bank;
                account.number = login.account_number;
                account.branch = login.account_agency;

                //############ Customer info ##################################
                customer.address_state            = "Nuremberg";
                customer.cpf                      = null;
                customer.email                    = "*****@*****.**";
                customer.address_postcode         = "90411180";
                customer.billing_address_line1    = "Street of Music";
                customer.billing_address_state    = "Province Nuremberg";
                customer.address_number           = "1653";
                customer.billing_address_city     = "City of Nuremberg";
                customer.phone                    = null;
                customer.billing_address_locality = "Neighborhood of Nuremberg";
                customer.name                     = "Johann Pachelbel";
                customer.nationality              = "GER";
                customer.billing_address_line2    = "Opera";
                customer.printed_name             = "Pachelbel";
                customer.preferred_name           = "Mr. Pachelbel";
                customer.address_country          = "German";
                customer.address_line2            = "House of Pachelbel AP. 404";
                customer.billing_address_postcode = "90411180";
                customer.dob                      = "09-01-1653";
                customer.id = "id-unique";
                customer.address_locality        = "Neighborhood of Nuremberg";
                customer.marital_status          = "Single";
                customer.billing_address_country = "German";
                customer.address_line1           = "Street Nuremberg";
                customer.gender = "Male";
                customer.billing_address_number = "1653";
                customer.reported_income        = "USD: 20000,00";
                customer.mothers_name           = "Anna Maria Mair";
                customer.invitations            = "10";
                customer.address_city           = "City of nurember";
                customer.personal_credit        = "60000,00";
                account.customer = customer;

                //############ Bills summary ####################################
                billsSummary.payments                = "1345,00";
                billsSummary.interest_charge         = "00,00";
                billsSummary.total_international     = "00.00";
                billsSummary.due_date                = "02-24-2018";
                billsSummary.precise_minimum_payment = "735,00";
                billsSummary.interest_reversal       = "00.00";
                billsSummary.close_date              = "02-10-2018";
                billsSummary.expenses                = "3500,00";
                billsSummary.total_credits           = "5700,00";
                billsSummary.past_balance            = "1235,00";
                billsSummary.effective_due_date      = "02-24-2018";
                billsSummary.international_tax       = "20% am";
                billsSummary.tax                   = "3.91";
                billsSummary.adjustments           = "00.00";
                billsSummary.precise_total_balance = "1345,00";
                billsSummary.total_financed        = "2578,00";
                billsSummary.total_balance         = "2578,00";
                billsSummary.interest_rate         = "14%";
                billsSummary.total_national        = "1345,00";
                billsSummary.previous_bill_balance = "82,00";
                billsSummary.interest              = null;
                billsSummary.total_cumulative      = "10.000";
                billsSummary.paid                  = "true";
                billsSummary.fees                  = null;
                billsSummary.total_payments        = "10.000";
                billsSummary.minimum_payment       = "735,00";
                billsSummary.open_date             = "02-01-2018";
                billsSummary.total_accrued         = "15123.00";

                //Account events
                //Add list
                events.Add(new Events()
                {
                    id       = "1",
                    category = "Bank deposit",
                    title    = "Canon in d paymento music",
                    amount   = "1500,00",
                    time     = DateTime.Now.ToString(),
                    message  = "Payment of copyright"
                });
                //Add list
                events.Add(new Events()
                {
                    id       = "2",
                    category = "Bank deposit",
                    title    = "Canon in d paymento music",
                    amount   = "15000,00",
                    time     = DateTime.Now.ToString(),
                    message  = "Payment of copyright in american dolars (USD) Berlin State Opera"
                });
                //Add list
                events.Add(new Events()
                {
                    id       = "2",
                    category = "Bank deposit",
                    title    = "Canon in d paymento music",
                    amount   = "150000,00",
                    time     = DateTime.Now.ToString(),
                    message  = "Payment of copyright in Brazilian Real (R$) Brasil State Opera"
                });

                //############################################################
                //Account purchases
                purchases.Add(new Purchase()
                {
                    category               = "1",
                    amount                 = "700,00",
                    precise_amount         = "700,00",
                    original_merchant_name = "Amazon new smart watch Garmin Fenix 5",
                    time = DateTime.Now.ToString(),
                    mcc  = "EUR"
                });
                //Account purchases
                purchases.Add(new Purchase()
                {
                    category               = "2",
                    amount                 = "100,00",
                    precise_amount         = "100,00",
                    original_merchant_name = "Amazon Alexa home",
                    time = DateTime.Now.ToString(),
                    mcc  = "EUR"
                });
                //Add to account
                account.events   = events;
                account.purchase = purchases;
            }
            catch (Exception e)
            {
                throw e;
            }
            return(account);
        }