} // ValidateOfferDate /// <summary> /// Add new paypoint card from paypoint callback. /// </summary> /// <param name="transId">Paypoint transaction id. null for test card</param> /// <param name="cardNo">Last digits of credit card. null for test card</param> /// <param name="expiry">Format: MMYY</param> /// <returns></returns> public virtual PayPointCard TryAddPayPointCard(string transId, string cardNo, string expiry, string cardHolder, PayPointAccount account) { var card = new PayPointCard { Customer = this, DateAdded = DateTime.UtcNow, CardNo = cardNo, TransactionId = transId, ExpireDateString = expiry, CardHolder = cardHolder, PayPointAccount = account, IsDefaultCard = true }; if (!string.IsNullOrEmpty(expiry) && expiry.Length == 4) { DateTime dt; if (DateTime.TryParseExact(expiry, "MMyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out dt)) { card.ExpireDate = dt; } } // if //if (!string.IsNullOrEmpty(card.CardNo) && card.ExpireDate.HasValue) { // var existing = PayPointCards // .Where(c => c.ExpireDate != null) // .Where(c => c.ExpireDate.Value.Year == card.ExpireDate.Value.Year) // .Where(c => c.ExpireDate.Value.Month == card.ExpireDate.Value.Month) // .FirstOrDefault(c => c.CardNo == card.CardNo); // if (existing != null) { // existing.TransactionId = card.TransactionId; // existing.DateAdded = card.DateAdded; // return existing; // } // if //} // if if (PayPointCards.Any()) { foreach (var payPointCard in PayPointCards) { payPointCard.IsDefaultCard = false; } } PayPointCards.Add(card); return(card); } // TryAddPayPointCard
public PaymentsAccountModel(Customer customer) { PayPointCards.AddRange(customer.PayPointCards.Select(PayPointCardModel.FromCard)); CurrentBankAccount = BankAccountModel.FromCard(customer.CurrentCard); int currentBankAccountId = 0; if (CurrentBankAccount != null) { currentBankAccountId = CurrentBankAccount.Id; } BankAccounts.AddRange(customer.BankAccounts.Where(a => a.Id != currentBankAccountId).Select(BankAccountModel.FromCard)); CustomerDefaultCardSelectionAllowed = customer.DefaultCardSelectionAllowed; }