public void SelectCardAccountFees_ReturnsIsaFeeTransactions_GivenTransactionList() { //Arrange var transactions = new List <TransactionModel> { new TransactionModel { TransactionTypeCategory = "Spend", Description = "Purchase", } }; var expectedFees = new List <TransactionModel> { new TransactionModel { TransactionTypeCategory = "CardAccountFee", Description = "ISA Fee", }, new TransactionModel { TransactionTypeCategory = "CardAccountFee", Description = "ISA Fee Adjustment", }, }; transactions.AddRange(expectedFees); var chTransactions = new CardholderTransactions(transactions); //Act List <TransactionModel> actualFees = chTransactions.SelectCardAccountFees(); //Assert Assert.Equal(expectedFees, actualFees); }
public static List <TransactionModel> SelectCardAccountFees(this CardholderTransactions transactions) { var result = transactions?.Where(t => t.TransactionTypeCategory.Equals(CardAccountFeeCategory, StringComparison.InvariantCultureIgnoreCase)) .ToList(); return(result); }
public static List <TransactionModel> SelectTransactionsToSync(this CardholderTransactions transactions, bool approvedOnly, string syncedNote = "") { var result = transactions?.Where(t => (t.TransactionType == TransactionType.Network || (t.TransactionType == TransactionType.Transfer && t.TransactionTypeCategory == DisputeCategory)) && (string.IsNullOrEmpty(syncedNote) || !(t.TransactionNotes?.Exists(n => n.NoteText.ToLower().Contains(syncedNote.ToLower())) ?? false)) && (!approvedOnly || (t.MetadataApprovalStatus?.Equals(MetadataApprovalStatusApproved, StringComparison.InvariantCultureIgnoreCase) ?? false))) .ToList(); return(result ?? new List <TransactionModel>()); }