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); }
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); }