public static LedgerBookDto TestData3()
{
var book = new LedgerBookDto
{
Modified = new DateTime(2013, 12, 14),
Name = "Test Budget Ledger Book 3",
StorageKey = "C:\\Folder\\FooBook3.xml"
};
var lines = new List<LedgerEntryLineDto>();
LedgerEntryLineDto line1 = AddEntryLineForTestData1(lines, new DateTime(2013, 12, 20));
line1.Entries.AddRange(
new[]
{
new LedgerEntryDto
{
Balance = 0, // because would go into negative
BucketCode = TestDataConstants.RatesBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id1,
Amount = 75,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
},
new LedgerTransactionDto
{
Id = id2,
Amount = -195,
Narrative = "Rates payment",
TransactionType = typeof(CreditLedgerTransaction).FullName
}
}
},
new LedgerEntryDto
{
Balance = 21.15M,
BucketCode = TestDataConstants.RegoBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id3,
Amount = 21.15M,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
},
new LedgerEntryDto
{
Balance = 0, // because would go into negative
BucketCode = TestDataConstants.CarMtcBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id4,
Amount = 95,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
},
new LedgerTransactionDto
{
Id = id5,
Amount = -295.45M,
Narrative = "Fix car",
TransactionType = typeof(CreditLedgerTransaction).FullName
}
}
}
});
LedgerEntryLineDto line2 = AddEntryLineForTestData1(lines, new DateTime(2014, 1, 20));
line2.Entries.AddRange(
new[]
{
new LedgerEntryDto
{
BucketCode = TestDataConstants.RatesBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id6,
Amount = 75,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
},
new LedgerEntryDto
{
BucketCode = TestDataConstants.RegoBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id7,
Amount = 21.15M,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
},
new LedgerEntryDto
{
BucketCode = TestDataConstants.CarMtcBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id8,
Amount = 95,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
}
});
LedgerEntryLineDto line3 = AddEntryLineForTestData1(lines, new DateTime(2014, 02, 20));
line3.Entries.AddRange(
new[]
{
new LedgerEntryDto
{
BucketCode = TestDataConstants.RatesBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id9,
Amount = 75,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
},
new LedgerEntryDto
{
BucketCode = TestDataConstants.RegoBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id10,
Amount = 21.15M,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
},
new LedgerEntryDto
{
BucketCode = TestDataConstants.CarMtcBucketCode,
Transactions = new List<LedgerTransactionDto>
{
new LedgerTransactionDto
{
Id = id11,
Amount = 95,
Narrative = "Budgeted Amount",
TransactionType = typeof(BudgetCreditLedgerTransaction).FullName
}
}
}
});
line3.BankBalanceAdjustments.Add(
new LedgerTransactionDto
{
Account = StatementModelTestData.ChequeAccount.Name,
Amount = -100.01M,
Narrative = "Visa payment yet to go out",
Id = new Guid("22927CF0-BAA2-4828-A669-C77396888BD6"),
TransactionType = typeof(CreditLedgerTransaction).FullName
});
UpdateLineBalances(line1, null, 1999.25M);
UpdateLineBalances(line2, line1, 2001.15M);
UpdateLineBalances(line3, line2, 1801.45M);
line3.BankBalances.Add(
new BankBalanceDto
{
Account = StatementModelTestData.SavingsAccount.Name,
Balance = 201M
});
line3.BankBalance += 201M;
book.Ledgers.Add(new LedgerBucketDto { BucketCode = TestDataConstants.RegoBucketCode, StoredInAccount = TestDataConstants.ChequeAccountName });
book.Ledgers.Add(new LedgerBucketDto { BucketCode = TestDataConstants.CarMtcBucketCode, StoredInAccount = TestDataConstants.ChequeAccountName });
book.Ledgers.Add(new LedgerBucketDto { BucketCode = TestDataConstants.RatesBucketCode, StoredInAccount = TestDataConstants.ChequeAccountName });
book.Reconciliations = lines.OrderByDescending(e => e.Date).ToList();
return book;
}