public PartialViewResult CardAccountsPartial(string cardNumber, string cardId) { var cardAccounts = service.GetCardAccountsByCustomerId(WebSecurity.CurrentUserId); foreach (var c in cardAccounts) { if (c.ExpiredDate <= Time.GetTime() && c.Status != "Истек срок действия" && !c.IsLocked) { c.Status = "Истек срок действия"; } } if (cardAccounts.Any()) { IEnumerable <CardAccountModel> cardAcountModels = cardAccounts .Select(c => new CardAccountModel() { CardAccount = c, Currency = service.GetBankAccountCurrencyShortString(c.BankAccountID), Balance = service.GetBankAccountBalance(c.BankAccountID), CardNumber = CardAccountModule.ConvertCardNumberString(c.CardNumber) }); var cardExists = cardAccounts.Any(c => (c.CardNumber == cardNumber) || (c.CardAccountID.ToString() == cardId)); var selectCardId = cardExists ? cardAccounts.First(c => (c.CardNumber == cardNumber) || (c.CardAccountID.ToString() == cardId)) .CardAccountID.ToString() : cardAccounts.First().CardAccountID.ToString(); CardAccountsModel model = new CardAccountsModel() { CardAccounts = cardAcountModels, SelectCardAccountId = selectCardId }; return(PartialView("CardAccountsPartial", model)); } else { CardAccountsModel model = new CardAccountsModel() { CardAccounts = new List <CardAccountModel>(), SelectCardAccountId = "0" }; return(PartialView("CardAccountsPartial", model)); } }
public ActionResult Index(FormCollection collection) { List <HistoryItemModel> HistoryItems = new List <HistoryItemModel>(); Dictionary <int, CardAccount> CardAccounts = new Dictionary <int, CardAccount>(); RouteValueDictionary RouteValues = new RouteValueDictionary(); #region parsing List <string> cardIds = new List <string>(); if (collection["item.CardAccount.CardAccountID"] == null) { return(View("Index", (object)"Не найдена информация о платежных картах")); } cardIds = collection["item.CardAccount.CardAccountID"].Split(',').Where(id => id != "false").ToList(); if (cardIds.Any() == false) { return(View("Index", (object)"Не выбрана ни одна из карт")); } RouteValues.Add("item.CardAccount.CardAccountID", collection["item.CardAccount.CardAccountID"]); var dateFrom = collection["datepicker-from"]; var dateTo = collection["datepicker-to"]; DateTime DateFrom; DateTime DateTo; try { DateFrom = String.IsNullOrEmpty(dateFrom) ? DateTime.MinValue : DateTime.Parse(dateFrom); DateTo = String.IsNullOrEmpty(dateTo) ? DateTime.MaxValue : DateTime.Parse(dateTo); } catch (Exception ex) { return(View("Index", (object)ex.Message)); } RouteValues.Add("datepicker-from", collection["datepicker-from"]); RouteValues.Add("datepicker-to", collection["datepicker-to"]); var arbitraryPaymentsParam = collection["arbitrary_payments"]; var ssispPaymentsParam = collection["ssisp_payments"]; var mobilePaymentsParam = collection["mobile_payments"]; var transferPaymentsParam = collection["transfer_payments"]; if ((arbitraryPaymentsParam == null) && (ssispPaymentsParam == null) && (mobilePaymentsParam == null) && (transferPaymentsParam == null)) { return(View("Index", (object)"Ни один из типов платежей не выбран")); } RouteValues.Add("arbitrary_payments", collection["arbitrary_payments"]); RouteValues.Add("ssisp_payments", collection["ssisp_payments"]); RouteValues.Add("mobile_payments", collection["mobile_payments"]); RouteValues.Add("transfer_payments", collection["transfer_payments"]); #endregion parsing #region fill foreach (var cardId in cardIds) { var id = Int32.Parse(cardId); CardAccounts.Add(id, service.GetCardAccountById(id)); } if (arbitraryPaymentsParam != null) { foreach (var cardId in cardIds) { var payments = service.GetArbitraryTransactionsByCardId(Int32.Parse(cardId), DateFrom, DateTo); if (payments != null && payments.Any()) { foreach (var payment in payments) { HistoryItems.Add(new HistoryItemModel() { Amount = payment.Amount, CardNumber = CardAccountModule.ConvertCardNumberString(CardAccounts[payment.CardAccountID].CardNumber), Currency = service.GetBankAccountCurrencyShortString(CardAccounts[payment.CardAccountID].BankAccountID), Date = payment.Date, Recipient = payment.Recipient, TransactionId = payment.ArbitraryTransactionID, Type = payment.Type }); } } } } if (ssispPaymentsParam != null) { foreach (var cardId in cardIds) { var payments = service.GetSSISTransactionsByCardId(Int32.Parse(cardId), DateFrom, DateTo); if (payments != null && payments.Any()) { foreach (var payment in payments) { HistoryItems.Add(new HistoryItemModel() { Amount = payment.Amount, CardNumber = CardAccountModule.ConvertCardNumberString(CardAccounts[payment.CardAccountID].CardNumber), Currency = service.GetBankAccountCurrencyShortString(CardAccounts[payment.CardAccountID].BankAccountID), Date = payment.Date, Recipient = rep.SSISPayments.GetSingle(payment.SSISPaymentID).Name, TransactionId = payment.SSISTransactionID, Type = payment.Type }); } } } } if (mobilePaymentsParam != null) { foreach (var cardId in cardIds) { var payments = service.GetMobileTransactionsByCardId(Int32.Parse(cardId), DateFrom, DateTo); if (payments != null && payments.Any()) { foreach (var payment in payments) { HistoryItems.Add(new HistoryItemModel() { Amount = payment.Amount, CardNumber = CardAccountModule.ConvertCardNumberString(CardAccounts[payment.CardAccountID].CardNumber), Currency = service.GetBankAccountCurrencyShortString(CardAccounts[payment.CardAccountID].BankAccountID), Date = payment.Date, Recipient = payment.MobileProvider, TransactionId = payment.MobileTransactionID, Type = payment.Type }); } } } } if (transferPaymentsParam != null) { foreach (var cardId in cardIds) { var payments = service.GetTransferTransactionsByCardId(Int32.Parse(cardId), DateFrom, DateTo); if (payments != null && payments.Any()) { foreach (var payment in payments) { HistoryItems.Add(new HistoryItemModel() { Amount = payment.Amount, CardNumber = CardAccountModule.ConvertCardNumberString(CardAccounts[payment.CardAccountID].CardNumber), Currency = service.GetBankAccountCurrencyShortString(CardAccounts[payment.CardAccountID].BankAccountID), Date = payment.Date, Recipient = payment.Number, TransactionId = payment.TransferTransactionID, Type = payment.Type }); } } } } #endregion fill HistoryListModel model = new HistoryListModel() { BackRouteValues = RouteValues, Items = HistoryItems.OrderBy(x => x.Date).ToList() }; return(View("HistoryList", model)); }