예제 #1
0
        // GET: Admin/Dashboard
        public ActionResult Index()
        {
            var customerService = new StripeCustomerService();
            var customers       = customerService.List();

            var balanceService = new StripeBalanceService();
            var balance        = balanceService.Get();

            var chargeService = new StripeChargeService();
            var charges       = chargeService.List().Where(c => c.Dispute != null);

            var sc    = customers as StripeCustomer[] ?? customers.ToArray();
            var model = new DashboardViewModel
            {
                CustomerCount           = sc.Count(),
                AccountAvailableBalance = balance.Available.Sum(b => b.Amount),
                AccountPendingBalance   = balance.Pending.Sum(b => b.Amount),
                MonthlyCustomerValue    = sc.Sum(c => c.StripeSubscriptionList.Data.Sum(s => s.StripePlan.Amount)),
                DisputedChargeCount     = charges.Sum(c => c.Dispute.Amount.GetValueOrDefault()),
                TrialCustomerCount      = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("trialing"))),
                ActiveCustomerCount     = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("active"))),
                PastDueCustomerCount    = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("past_due"))),
                CanceledCustomerCount   = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("canceled"))),
                UnpaidCustomerCount     = sc.Count(c => c.StripeSubscriptionList.Data.Any(s => s.Status.Equals("unpaid"))),
            };

            return(View(model));
        }
        public void Balance(string Api_Key, ref string Response, ref string Errors, ref int ErrorCode)
        {
            try
            {
                StripeConfiguration.SetApiKey(Api_Key);

                var balanceService = new StripeBalanceService();
                var balance        = balanceService.Get();

                var response = balance.StripeResponse;
                Response  = response.ResponseJson;
                ErrorCode = 0;
            }
            catch (StripeException e)
            {
                ErrorCode = 1;
                Serializer  serializer  = new Serializer();
                StripeError stripeError = e.StripeError;
                Errors = serializer.Serialize <StripeError>(stripeError);
            }
        }