public void ShowDialog([NotNull] Engine.Ledger.LedgerBook parentLedgerBook, [NotNull] LedgerBucket ledgerBucket, [NotNull] BudgetModel budgetModel)
{
if (parentLedgerBook == null)
{
throw new ArgumentNullException(nameof(parentLedgerBook));
}
if (ledgerBucket == null)
{
throw new ArgumentNullException(nameof(ledgerBucket));
}
if (budgetModel == null)
{
throw new ArgumentNullException(nameof(budgetModel));
}
if (LedgerBucketHistoryAnalysis == null)
{
LedgerBucketHistoryAnalysis = CreateBucketHistoryAnalyser();
}
LedgerBucketHistoryAnalysis.Analyse(ledgerBucket, parentLedgerBook);
this.ledger = ledgerBucket;
BankAccounts = new ObservableCollection<Account>(this.accountRepo.ListCurrentlyUsedAccountTypes());
BucketBeingTracked = ledgerBucket.BudgetBucket;
StoredInAccount = ledgerBucket.StoredInAccount;
MonthlyBudgetAmount = budgetModel.Expenses.Single(e => e.Bucket == BucketBeingTracked).Amount;
this.correlationId = Guid.NewGuid();
var dialogRequest = new ShellDialogRequestMessage(BudgetAnalyserFeature.LedgerBook, this, ShellDialogType.OkCancel)
{
CorrelationId = this.correlationId,
Title = "Ledger - " + BucketBeingTracked,
HelpAvailable = true
};
MessengerInstance.Send(dialogRequest);
}