コード例 #1
0
        public PartialViewResult GetTransactions()
        {
            List<TransactionDisplay> list = null;
            try
            {
                if (User.Identity.IsAuthenticated)
                {
                    using (var context = new IPTV2Entities())
                    {
                        var userId = new System.Guid(User.Identity.Name);
                        User user = context.Users.FirstOrDefault(u => u.UserId == userId);
                        if (user != null)
                        {
                            var transactions = context.Transactions.Where(t => t.UserId == user.UserId && t.OfferingId == GlobalConfig.offeringId && t.StatusId == GlobalConfig.Visible).OrderByDescending(t => t.TransactionId);

                            if (transactions != null)
                            {
                                list = new List<TransactionDisplay>();
                                foreach (Transaction transaction in transactions)
                                {
                                    TransactionDisplay disp = new TransactionDisplay()
                                    {
                                        TransactionId = transaction.TransactionId,
                                        Reference = transaction.Reference,
                                        Amount = transaction.Amount,
                                        Currency = transaction.Currency,
                                        TransactionDate = transaction.Date,
                                        TransactionDateStr = transaction.Date.ToString("MMMM d, yyyy")
                                    };

                                    if (transaction is PaymentTransaction)
                                    {
                                        PaymentTransaction ptrans = (PaymentTransaction)transaction;
                                        string remarks = ptrans.Purchase.Remarks;
                                        bool purchase = String.IsNullOrEmpty(remarks) ? false : remarks.StartsWith("Gift");
                                        disp.TransactionType = purchase ? "Gift" : "Subscription";
                                        PurchaseItem item = ptrans.Purchase.PurchaseItems.FirstOrDefault();
                                        disp.ProductId = item.ProductId;
                                        Product product = context.Products.FirstOrDefault(p => p.ProductId == item.ProductId);
                                        if (product != null)
                                            disp.ProductName = product.Description;
                                        if (ptrans is PpcPaymentTransaction)
                                        {
                                            disp.PpcId = ptrans.Reference;
                                            disp.PaymentType = "Prepaid Card/ePIN";
                                        }
                                        else if (ptrans is PaypalPaymentTransaction)
                                            disp.PaymentType = "Paypal";
                                        else if (ptrans is CreditCardPaymentTransaction)
                                            disp.PaymentType = "Credit Card";
                                        else if (ptrans is WalletPaymentTransaction)
                                            disp.PaymentType = "Wallet";
                                        disp.Method = disp.PaymentType;
                                    }
                                    else if (transaction is UpgradeTransaction)
                                    {
                                        UpgradeTransaction utrans = (UpgradeTransaction)transaction;

                                        disp.TransactionType = "Upgrade";
                                        Product product = context.Products.FirstOrDefault(p => p.ProductId == utrans.OriginalProductId);
                                        if (product != null)
                                            disp.ProductName = product.Description;
                                        Product oldProduct = context.Products.FirstOrDefault(p => p.ProductId == utrans.NewProductId);
                                        disp.Reference = String.Format("Upgraded to {0}", oldProduct.Name);
                                        disp.Method = String.Empty;
                                    }
                                    else if (transaction is TfcEverywhereTransaction)
                                    {
                                        TfcEverywhereTransaction ttrans = (TfcEverywhereTransaction)transaction;
                                        disp.TransactionType = "Update";
                                        disp.ProductName = "TFC Everywhere";
                                        disp.Method = String.Empty;
                                        disp.Amount = 0;

                                    }
                                    else if (transaction is CancellationTransaction)
                                    {
                                        CancellationTransaction ctrans = (CancellationTransaction)transaction;
                                        disp.TransactionType = "Cancellation";
                                        //disp.ProductName = String.Format("TID: {0}", ctrans.OriginalTransactionId);
                                        disp.ProductName = String.Empty;
                                        disp.Method = String.Empty;
                                        disp.Amount = 0;

                                    }
                                    else if (transaction is ChangeCountryTransaction)
                                    {
                                        ChangeCountryTransaction ctrans = (ChangeCountryTransaction)transaction;
                                        disp.TransactionType = "Change Country";
                                        disp.ProductName = String.Empty;
                                        disp.Method = String.Empty;
                                        disp.Reference = String.Format("{0} to {1}", ctrans.OldCountryCode, ctrans.NewCountryCode);
                                    }
                                    else if (transaction is MigrationTransaction)
                                    {
                                        MigrationTransaction mtrans = (MigrationTransaction)transaction;
                                        disp.TransactionType = "Migrate License";
                                        disp.ProductName = String.Empty;
                                        if (mtrans.MigratedProductId > 0)
                                        {
                                            Product product = context.Products.FirstOrDefault(p => p.ProductId == mtrans.MigratedProductId);
                                            if (product != null)
                                                disp.ProductName = product.Name;
                                        }
                                        disp.Method = String.Empty;
                                        disp.Reference = mtrans.Reference;
                                    }
                                    else if (transaction is RegistrationTransaction)
                                    {
                                        RegistrationTransaction rgtrans = (RegistrationTransaction)transaction;
                                        disp.TransactionType = "Registration";
                                        disp.ProductName = String.Empty;
                                        disp.Method = String.Empty;
                                    }
                                    else if (transaction is ReloadTransaction)
                                    {
                                        ReloadTransaction rtrans = (ReloadTransaction)transaction;
                                        disp.ProductName = String.Empty;
                                        disp.TransactionType = "Reload";
                                        if (rtrans is PpcReloadTransaction)
                                        {
                                            disp.PpcId = rtrans.Reference;
                                            disp.ReloadType = "Prepaid Card/ePIN";
                                        }
                                        else if (rtrans is PaypalReloadTransaction)
                                            disp.ReloadType = "Paypal";
                                        else if (rtrans is CreditCardReloadTransaction)
                                            disp.ReloadType = "Credit Card";
                                        else if (rtrans is SmartPitReloadTransaction)
                                            disp.ReloadType = "Smart Pit";

                                        disp.Method = disp.ReloadType;
                                    }
                                    list.Add(disp);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e) { MyUtility.LogException(e); }
            return PartialView(list);
        }
コード例 #2
0
        public JsonResult MyTransactions()
        {
            List<TransactionDisplay> display = new List<TransactionDisplay>();
            if (User.Identity.IsAuthenticated)
            {
                System.Guid userId = new System.Guid(User.Identity.Name);
                var context = new IPTV2Entities();
                User user = context.Users.FirstOrDefault(u => u.UserId == userId);
                if (user != null)
                {
                    var transactions = context.Transactions.Where(t => t.UserId == user.UserId && t.OfferingId == GlobalConfig.offeringId).OrderByDescending(t => t.TransactionId).ToList();

                    foreach (Transaction transaction in transactions)
                    {
                        TransactionDisplay disp = new TransactionDisplay();

                        disp.TransactionId = transaction.TransactionId;
                        disp.Reference = transaction.Reference;
                        disp.Amount = transaction.Amount;
                        disp.Currency = transaction.Currency;
                        disp.TransactionDate = transaction.Date;

                        //TimeSpan utcOffset = TimeZoneInfo.Local.GetUtcOffset(transaction.Date);
                        //var result = string.Format("{0:yyyy-dd-MM}T{1}:{2}:00",
                        //                                     transaction.Date,
                        //                                     utcOffset.Hours + 12,
                        //                                     utcOffset.Minutes);
                        disp.TransactionDateStr = transaction.Date.ToString("yyyy-MM-ddThh:mm:ss");
                        //disp.TransactionDateStr = transaction.Date.ToString("yyyy-MM-dd");

                        //if (transaction is PaymentTransaction)
                        //{
                        //    PaymentTransaction ptrans = (PaymentTransaction)transaction;

                        //    string remarks = ptrans.Purchase.Remarks;
                        //    bool purchase = String.IsNullOrEmpty(remarks) ? false : remarks.StartsWith("Gift");
                        //    disp.TransactionType = purchase ? "Gift" : "Subscription";
                        //    PurchaseItem item = ptrans.Purchase.PurchaseItems.FirstOrDefault();
                        //    disp.ProductId = item.ProductId;
                        //    Product product = context.Products.FirstOrDefault(p => p.ProductId == item.ProductId);
                        //    if (product != null)
                        //        disp.ProductName = product.Name;
                        //    if (ptrans is PpcPaymentTransaction)
                        //    {
                        //        disp.PpcId = ptrans.Reference;
                        //        disp.PaymentType = "Prepaid Card";
                        //    }
                        //    else if (ptrans is PaypalPaymentTransaction)
                        //        disp.PaymentType = "PayPal";
                        //    else if (ptrans is CreditCardPaymentTransaction)
                        //        disp.PaymentType = "Credit Card";
                        //    else if (ptrans is WalletPaymentTransaction)
                        //        disp.PaymentType = "Wallet";
                        //    disp.Method = disp.PaymentType;
                        //}
                        //else if (transaction is UpgradeTransaction)
                        //{
                        //    UpgradeTransaction utrans = (UpgradeTransaction)transaction;

                        //    disp.TransactionType = "Upgrade";
                        //    Product product = context.Products.FirstOrDefault(p => p.ProductId == utrans.OriginalProductId);
                        //    if (product != null)
                        //        disp.ProductName = product.Name;
                        //    Product oldProduct = context.Products.FirstOrDefault(p => p.ProductId == utrans.NewProductId);
                        //    disp.Reference = String.Format("Upgraded to {0}", oldProduct.Name);
                        //    disp.Method = "N/A";
                        //}

                        //else if (transaction is ChangeCountryTransaction)
                        //{
                        //    ChangeCountryTransaction ctrans = (ChangeCountryTransaction)transaction;
                        //    disp.TransactionType = "Change Country";
                        //    disp.ProductName = "N/A";
                        //    disp.Method = "N/A";
                        //    disp.Reference = String.Format("Change Country from {0} to {1}", ctrans.OldCountryCode, ctrans.NewCountryCode);
                        //}
                        //else
                        //{
                        //    ReloadTransaction rtrans = (ReloadTransaction)transaction;
                        //    disp.ProductName = "N/A";
                        //    disp.TransactionType = "Reload";
                        //    if (rtrans is PpcReloadTransaction)
                        //    {
                        //        disp.PpcId = rtrans.Reference;
                        //        disp.ReloadType = "Prepaid Card";
                        //    }
                        //    else if (rtrans is PaypalReloadTransaction)
                        //        disp.ReloadType = "PayPal";
                        //    else if (rtrans is CreditCardReloadTransaction)
                        //        disp.ReloadType = "Credit Card";

                        //    disp.Method = disp.ReloadType;
                        //}
                        if (transaction is PaymentTransaction)
                        {
                            PaymentTransaction ptrans = (PaymentTransaction)transaction;

                            string remarks = ptrans.Purchase.Remarks;
                            bool purchase = String.IsNullOrEmpty(remarks) ? false : remarks.StartsWith("Gift");
                            disp.TransactionType = purchase ? "Gift" : "Subscription";
                            PurchaseItem item = ptrans.Purchase.PurchaseItems.FirstOrDefault();
                            disp.ProductId = item.ProductId;
                            Product product = context.Products.FirstOrDefault(p => p.ProductId == item.ProductId);
                            if (product != null)
                                disp.ProductName = product.Name;
                            if (ptrans is PpcPaymentTransaction)
                            {
                                disp.PpcId = ptrans.Reference;
                                disp.PaymentType = "Prepaid Card/ePIN";
                            }
                            else if (ptrans is PaypalPaymentTransaction)
                                disp.PaymentType = "Paypal";
                            else if (ptrans is CreditCardPaymentTransaction)
                                disp.PaymentType = "Credit Card";
                            else if (ptrans is WalletPaymentTransaction)
                                disp.PaymentType = "Wallet";
                            disp.Method = disp.PaymentType;
                        }
                        else if (transaction is UpgradeTransaction)
                        {
                            UpgradeTransaction utrans = (UpgradeTransaction)transaction;

                            disp.TransactionType = "Upgrade";
                            Product product = context.Products.FirstOrDefault(p => p.ProductId == utrans.OriginalProductId);
                            if (product != null)
                                disp.ProductName = product.Name;
                            Product oldProduct = context.Products.FirstOrDefault(p => p.ProductId == utrans.NewProductId);
                            disp.Reference = String.Format("Upgraded to {0}", oldProduct.Name);
                            disp.Method = "N/A";
                        }
                        else if (transaction is TfcEverywhereTransaction)
                        {
                            TfcEverywhereTransaction ttrans = (TfcEverywhereTransaction)transaction;
                            disp.TransactionType = "Platinum";
                            disp.ProductName = "TFC.tv Premium";
                            disp.Method = "N/A";
                            disp.Amount = 0;

                        }
                        else if (transaction is ChangeCountryTransaction)
                        {
                            ChangeCountryTransaction ctrans = (ChangeCountryTransaction)transaction;
                            disp.TransactionType = "Change Country";
                            disp.ProductName = "N/A";
                            disp.Method = "N/A";
                            disp.Reference = String.Format("Change Country from {0} to {1}", ctrans.OldCountryCode, ctrans.NewCountryCode);
                        }
                        else if (transaction is MigrationTransaction)
                        {
                            MigrationTransaction mtrans = (MigrationTransaction)transaction;
                            disp.TransactionType = "Migrate Licenses";
                            disp.ProductName = "N/A";
                            if (mtrans.MigratedProductId > 0)
                            {
                                Product product = context.Products.FirstOrDefault(p => p.ProductId == mtrans.MigratedProductId);
                                if (product != null)
                                    disp.ProductName = product.Name;
                            }
                            disp.Method = "N/A";
                            disp.Reference = mtrans.Reference;
                        }
                        else if (transaction is RegistrationTransaction)
                        {
                            RegistrationTransaction rgtrans = (RegistrationTransaction)transaction;
                            disp.TransactionType = "Registration";
                            disp.ProductName = "N/A";
                            disp.Method = "N/A";
                        }
                        else if (transaction is ReloadTransaction)
                        {
                            ReloadTransaction rtrans = (ReloadTransaction)transaction;
                            disp.ProductName = "N/A";
                            disp.TransactionType = "Reload";
                            if (rtrans is PpcReloadTransaction)
                            {
                                disp.PpcId = rtrans.Reference;
                                disp.ReloadType = "Prepaid Card/ePIN";
                            }
                            else if (rtrans is PaypalReloadTransaction)
                                disp.ReloadType = "Paypal";
                            else if (rtrans is CreditCardReloadTransaction)
                                disp.ReloadType = "Credit Card";
                            else if (rtrans is SmartPitReloadTransaction)
                                disp.ReloadType = "Smart Pit";

                            disp.Method = disp.ReloadType;
                        }
                        display.Add(disp);
                    }
                }
            }
            return this.Json(display, JsonRequestBehavior.AllowGet);
        }