public JsonNetResult GetBalanceTransactionsForSource(string sourceId)
        {
            #region Get data from WCF

            var platformBillingServiceClient = new PlatformBillingService.PlatformBillingServiceClient();
            var sourceBalanceTransactions    = new SourceBalanceTransactions();

            try
            {
                platformBillingServiceClient.Open();
                sourceBalanceTransactions = platformBillingServiceClient.GetBalanceTransactionsForSource(sourceId, Common.SharedClientKey);

                //Close the connection
                WCFManager.CloseConnection(platformBillingServiceClient);
            }
            catch (Exception e)
            {
                #region Manage Exception

                string exceptionMessage = e.Message.ToString();

                var    currentMethod       = System.Reflection.MethodBase.GetCurrentMethod();
                string currentMethodString = currentMethod.DeclaringType.FullName + "." + currentMethod.Name;

                // Abort the connection & manage the exception
                WCFManager.CloseConnection(platformBillingServiceClient, exceptionMessage, currentMethodString);

                #endregion
            }

            #endregion

            JsonNetResult jsonNetResult = new JsonNetResult();
            jsonNetResult.Formatting = Newtonsoft.Json.Formatting.Indented;
            jsonNetResult.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; //<-- Convert UTC times to LocalTime
            jsonNetResult.Data = sourceBalanceTransactions;

            return(jsonNetResult);
        }
        public static SourceBalanceTransactions GetBalanceTransactionsForSource(string sourceId)
        {
            var sourceBalanceTransactions = new SourceBalanceTransactions();

            sourceBalanceTransactions.Transactions = new List <BalanceTransaction>();


            decimal totalGross = 0;
            decimal totalFees  = 0;
            decimal totalNet   = 0;

            //Get all balance transactions for the source
            var stripeBalanceTransactions = new StripeManager().GetBalanceTransactionsForSource(sourceId);

            if (stripeBalanceTransactions != null)
            {
                foreach (var stripeBalanceTransaction in stripeBalanceTransactions)
                {
                    var balanceTransaction = Transformations.TransformStripeBalanceTransactionToBalanceTransaction(stripeBalanceTransaction);

                    sourceBalanceTransactions.Transactions.Add(balanceTransaction);

                    totalGross = totalGross + balanceTransaction.Amount;
                    totalFees  = totalFees + balanceTransaction.Fee;
                    totalNet   = totalNet + balanceTransaction.Net;
                }
            }


            sourceBalanceTransactions.TotalGross = totalGross;
            sourceBalanceTransactions.TotalFees  = totalFees;
            sourceBalanceTransactions.TotalNet   = totalNet;


            return(sourceBalanceTransactions);
        }