Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/HiveStatistics/DimProjectDao.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/HiveStatistics/DimProjectDao.cs	(revision 15659)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/HiveStatistics/DimProjectDao.cs	(revision 15659)
@@ -0,0 +1,71 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Data.Linq;
+using System.Linq;
+
+namespace HeuristicLab.Services.Hive.DataAccess.Daos.HiveStatistics {
+  public class DimProjectDao : GenericDao<Guid, DimProject> {
+    public DimProjectDao(DataContext dataContext) : base(dataContext) { }
+
+    public override DimProject GetById(Guid id) {
+      return GetByIdQuery(DataContext, id);
+    }
+
+    public IEnumerable<DimProject> GetByProjectId(Guid projectId) {
+      return GetByProjectIdQuery(DataContext, projectId);
+    }
+
+    public Guid GetLastValidIdByProjectId(Guid projectId) {
+      return GetLastValidIdByProjectIdQuery(DataContext, projectId);
+    }
+
+    public IEnumerable<DimProject> GetAllOnlineProjects() {
+      return GetAllOnlineProjectsQuery(DataContext);
+    }
+
+    #region Compiled queries
+    private static readonly Func<DataContext, Guid, DimProject> GetByIdQuery =
+      CompiledQuery.Compile((DataContext db, Guid id) =>
+        (from dimProject in db.GetTable<DimProject>()
+         where dimProject.Id == id
+         select dimProject).SingleOrDefault());
+    private static readonly Func<DataContext, Guid, IEnumerable<DimProject>> GetByProjectIdQuery =
+      CompiledQuery.Compile((DataContext db, Guid projectId) =>
+        (from dimProject in db.GetTable<DimProject>()
+         where dimProject.ProjectId == projectId
+         select dimProject).ToList());
+    private static readonly Func<DataContext, Guid, Guid> GetLastValidIdByProjectIdQuery =
+      CompiledQuery.Compile((DataContext db, Guid projectId) =>
+        (from dimProject in db.GetTable<DimProject>()
+         where dimProject.ProjectId == projectId
+         orderby dimProject.DateCreated
+         select dimProject.Id).SingleOrDefault());
+    private static readonly Func<DataContext, IEnumerable<DimProject>> GetAllOnlineProjectsQuery =
+      CompiledQuery.Compile((DataContext db) =>
+        (from dimProject in db.GetTable<DimProject>()
+         where dimProject.DateExpired == null
+         select dimProject).ToList());
+    #endregion
+  }
+}
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/HiveStatistics/FactProjectInfoDao.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/HiveStatistics/FactProjectInfoDao.cs	(revision 15659)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/HiveStatistics/FactProjectInfoDao.cs	(revision 15659)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Data.Linq;
+using System.Linq;
+
+namespace HeuristicLab.Services.Hive.DataAccess.Daos.HiveStatistics {
+  public class FactProjectInfoDao : GenericDao<Guid, FactProjectInfo> {
+    public FactProjectInfoDao(DataContext dataContext) : base(dataContext) { }
+
+    public override FactProjectInfo GetById(Guid id) {
+      return GetByIdQuery(DataContext, id);
+    }
+
+    private Table<DimTime> DimTimeTable {
+      get { return DataContext.GetTable<DimTime>(); }
+    }
+
+    #region Compiled queries
+    private static readonly Func<DataContext, Guid, FactProjectInfo> GetByIdQuery =
+      CompiledQuery.Compile((DataContext db, Guid id) =>
+        (from factProjectInfo in db.GetTable<FactProjectInfo>()
+         where factProjectInfo.ProjectId== id
+         select factProjectInfo).SingleOrDefault());
+    #endregion
+  }
+}
