Example #1
0
        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));
            }
        }
Example #2
0
        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));
        }