public static int CalculateDuration(GlobalFilterCriteria criteria, IEnumerable<Transaction> transactions)
{
List<Transaction> list = transactions.ToList();
DateTime minDate = DateTime.MaxValue, maxDate = DateTime.MinValue;
if (criteria != null && !criteria.Cleared)
{
if (criteria.BeginDate != null)
{
minDate = criteria.BeginDate.Value;
Debug.Assert(criteria.EndDate != null);
maxDate = criteria.EndDate.Value;
}
}
else
{
minDate = list.Min(t => t.Date);
maxDate = list.Max(t => t.Date);
}
return minDate.DurationInMonths(maxDate);
}