public static IEnumerable <ICommission> GetCommissionPeriodList(int customerID, bool getRealTime = false) { // Historical Commissions var commissions = new List <ICommission>(); using (var context = ExigoDAL.Sql()) { commissions.AddRange(context.Query <HistoricalCommission, Period, HistoricalCommission>(@" SELECT c.CommissionRunID ,c.CustomerID ,c.CurrencyCode ,c.Earnings ,c.PreviousBalance ,c.BalanceForward ,c.Fee ,c.Total ,cr.CommissionRunDescription ,cr.PeriodTypeID ,cr.PeriodID ,cr.RunDate ,cr.AcceptedDate ,cr.CommissionRunStatusID ,cr.HideFromWeb ,cr.PlanID ,p.PeriodID ,p.PeriodDescription ,p.PeriodTypeID ,p.StartDate ,p.EndDate ,p.AcceptedDate FROM Commissions c LEFT JOIN CommissionRuns cr ON c.CommissionRunID = cr.CommissionRunID LEFT JOIN Periods p ON cr.PeriodID = p.PeriodID AND cr.PeriodTypeID = p.PeriodTypeID WHERE c.CustomerID = @customerID ORDER BY cr.CommissionRunID DESC ", (hc, p) => { hc.Period = p; return(hc); } , splitOn: "PeriodID" , param: new { customerID }).ToList()); } if (getRealTime) { var realTimeCommissions = ExigoDAL.GetCustomerRealTimeCommissions(new GetCustomerRealTimeCommissionsRequest { CustomerID = customerID, GetPeriodVolumes = false }); if (realTimeCommissions.Count() > 0) { commissions.AddRange(realTimeCommissions); } } if (commissions == null) { return(null); } return(commissions); }