private static GroupRootTrendBuilderBase GetAppropriateBuilderType(Grouping grouping)
 {
     if (grouping.IsDataMonthly())
     {
         return new GroupRootTrendBuilderMonthly();
     }
     if (grouping.IsDataQuarterly())
     {
         return new GroupRootTrendBuilderQuarterly();
     }
     return new GroupRootTrendBuilderYearly();
 }
 private static void AddTimePeriodRestriction(Grouping grouping, ICriteria criteria)
 {
     if (grouping.IsDataQuarterly())
     {
         criteria.Add(Restrictions.Gt("Quarter", 0));
     }
     else if (grouping.IsDataMonthly())
     {
         criteria.Add(Restrictions.Gt("Month", 0));
     }
     else
     {
         criteria.Add(Restrictions.Eq("Quarter", -1));
         criteria.Add(Restrictions.Eq("Month", -1));
         criteria.Add(Restrictions.Eq("YearRange", grouping.YearRange));
     }
 }
 private IQuery GetQueryLimitedByTimePeriodInterval(Grouping grouping, string query)
 {
     IQuery q;
     if (grouping.IsDataQuarterly())
     {
         q = CurrentSession.CreateQuery(string.Format(query, " and d.Quarter > 0"));
     }
     else if (grouping.IsDataMonthly())
     {
         q = CurrentSession.CreateQuery(string.Format(query, " and d.Month > 0"));
     }
     else
     {
         q =
             CurrentSession.CreateQuery(string.Format(query,
                 " and d.YearRange = :yearRange and d.Quarter = :quarter"));
         q.SetParameter("yearRange", grouping.YearRange);
         q.SetParameter("quarter", grouping.BaselineQuarter);
     }
     return q;
 }