示例#1
0
        public static string BuildSummaryMessage(int merchantId, DateTime xctPostingDate)
        {
            MerchantMBE merchant = MongoDBContext.FindMerchantById(merchantId);

            XctDailySummaryBE xctSummary = MerchantController.GetXctDailySummary(merchantId, xctPostingDate);

            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"Merchant Account Summary for: {xctPostingDate:ddd MMM dd, yyyy} as of {DateTime.Now.ToString("h:mm tt")} ");
            sb.AppendLine("\n");

            if (xctSummary != null)
            {
                foreach (var xctType in xctSummary.SummaryByXctType)
                {
                    sb.AppendLine($"{xctType.XctTypeDesc}:");
                    sb.AppendLine($"{xctType.XctTotalValue:C} [{xctType.XctCount} txns]");

                    if (xctType.XctType == Enums.TRANSACTION_TYPE.chargeback)
                    {
                        sb.AppendLine("  (text CBACK for details)");
                    }

                    sb.AppendLine("\n");
                }
                sb.AppendLine($"Net Total:  {xctSummary.SummaryByXctType.Sum(x => x.XctTotalValue):C}");
                sb.AppendLine("(all Card Transactions)");
                sb.AppendLine("\n");
                sb.AppendLine($"Final settlement amount will be deposited into your checking account ending in {merchant.setup_options.debit_card_no.Substring(1,4)} on {DateTime.Now.AddBusinessDays(2).ToString("ddd MMM dd, yyyy")} -- to" +
                              " receive these funds tomorrow morning reply FAF");
            }
            else
            {
                sb.AppendLine(@"No activity yet for today.");
            }

            return(sb.ToString());
        }
示例#2
0
        /// <summary>
        /// Build a Xct Summary for the specified merchant & date
        /// </summary>
        /// <param name="merchantId"></param>
        /// <param name="xctPostingDate"></param>
        /// <returns></returns>
        public static XctDailySummaryBE GetXctDailySummary(int merchantId, DateTime xctPostingDate)
        {
            var merchantActivity = MongoDBContext.FindMerchantDailyActivity(merchantId, xctPostingDate);

            XctDailySummaryBE results = null;

            if (merchantActivity != null &&
                merchantActivity.transactions != null &&
                merchantActivity.transactions.Count > 0)
            {
                results = new XctDailySummaryBE();

                results.SummaryByXctType = merchantActivity.transactions
                                           .OrderBy(x => x.xct_type)
                                           .GroupBy(x => x.xct_type)
                                           .Select(x => new XctTypeDailySummaryBE()
                {
                    XctType = x.Key,
                    //XctType = x.Key.ToString(),
                    XctCount      = x.Count(),
                    XctTotalValue = x.Sum(r => r.xct_amount)
                }).ToList();


                var subtotals2 = from row in merchantActivity.transactions
                                 group row by row.xct_type into grp
                                 orderby grp.Key
                                 select new
                {
                    XctType       = grp.Key,
                    XctCount      = grp.Count(),
                    XctTotalValue = grp.Sum(r => r.xct_amount)
                };
            }

            return(results);
        }