private bool NavigateToTransactionOutsideOfFilter(Guid transactionId)
{
Transaction foundTransaction = ViewModel.Statement.AllTransactions.FirstOrDefault(t => t.Id == transactionId);
if (foundTransaction != null)
{
bool? result = this.questionBox.Show("The transaction falls outside the current filter. Do you wish to adjust the filter to show the transaction?", "Navigate to Transaction");
if (result == null || !result.Value)
{
return false;
}
GlobalFilterCriteria newCriteria;
var requestCurrentFilter = new RequestFilterMessage(this);
MessengerInstance.Send(requestCurrentFilter);
if (foundTransaction.Date < requestCurrentFilter.Criteria.BeginDate)
{
newCriteria = new GlobalFilterCriteria { BeginDate = foundTransaction.Date, EndDate = requestCurrentFilter.Criteria.EndDate };
}
else
{
newCriteria = new GlobalFilterCriteria { BeginDate = requestCurrentFilter.Criteria.BeginDate, EndDate = foundTransaction.Date };
}
MessengerInstance.Send(new RequestFilterChangeMessage(this) { Criteria = newCriteria });
return NavigateToVisibleTransaction(transactionId);
}
return false;
}