diff --git a/R7.University.DivisionDirectory/Queries/HeadEmployeeQuery.cs b/R7.University.DivisionDirectory/Queries/HeadEmployeesQuery.cs
similarity index 79%
rename from R7.University.DivisionDirectory/Queries/HeadEmployeeQuery.cs
rename to R7.University.DivisionDirectory/Queries/HeadEmployeesQuery.cs
index 6c2b977d..9ee06a2b 100644
--- a/R7.University.DivisionDirectory/Queries/HeadEmployeeQuery.cs
+++ b/R7.University.DivisionDirectory/Queries/HeadEmployeesQuery.cs
@@ -20,29 +20,30 @@
// along with this program. If not, see .
using System;
+using System.Collections.Generic;
using System.Linq;
using R7.University.Models;
using R7.University.Queries;
namespace R7.University.DivisionDirectory.Queries
{
- internal class HeadEmployeeQuery: QueryBase
+ internal class HeadEmployeesQuery: QueryBase
{
- public HeadEmployeeQuery (IModelContext modelContext): base (modelContext)
+ public HeadEmployeesQuery (IModelContext modelContext): base (modelContext)
{
}
- public EmployeeInfo FirstOrDefault (int divisionId, int? headPositionId)
+ public IEnumerable GetHeadEmployees (int divisionId, int? headPositionId)
{
if (headPositionId != null) {
return ModelContext.Query ()
.Include (e => e.Positions)
.Include (e => e.Positions.Select (op => op.Position))
.Where (e => e.Positions.Any (op => op.DivisionID == divisionId && op.PositionID == headPositionId))
- .FirstOrDefault ();
+ .ToList ();
}
- return null;
+ return Enumerable.Empty ();
}
}
}
diff --git a/R7.University.DivisionDirectory/R7.University.DivisionDirectory.csproj b/R7.University.DivisionDirectory/R7.University.DivisionDirectory.csproj
index 9ad5db77..7a073668 100644
--- a/R7.University.DivisionDirectory/R7.University.DivisionDirectory.csproj
+++ b/R7.University.DivisionDirectory/R7.University.DivisionDirectory.csproj
@@ -101,8 +101,8 @@
-
+
diff --git a/R7.University.DivisionDirectory/ViewDivisionDirectory.ascx.cs b/R7.University.DivisionDirectory/ViewDivisionDirectory.ascx.cs
index 030814fa..17d144ce 100644
--- a/R7.University.DivisionDirectory/ViewDivisionDirectory.ascx.cs
+++ b/R7.University.DivisionDirectory/ViewDivisionDirectory.ascx.cs
@@ -343,9 +343,11 @@ protected void gridDivisions_RowDataBound (object sender, GridViewRowEventArgs e
linkDocument.Visible = false;
// get head employee
- var headEmployee = new HeadEmployeeQuery (ModelContext).FirstOrDefault (division.DivisionID, division.HeadPositionID);
-
- if (headEmployee != null && headEmployee.IsPublished (now)) {
+ var headEmployee = new HeadEmployeesQuery (ModelContext)
+ .GetHeadEmployees (division.DivisionID, division.HeadPositionID)
+ .FirstOrDefault (he => he.IsPublished (now));
+
+ if (headEmployee != null) {
linkContactPerson.Text = headEmployee.AbbrName;
linkContactPerson.ToolTip = headEmployee.FullName;
linkContactPerson.NavigateUrl = EditUrl (
@@ -385,9 +387,11 @@ protected void gridObrnadzorDivisions_RowDataBound (object sender, GridViewRowEv
var literalContactPerson = (Literal) e.Row.FindControl ("literalContactPerson");
// get head employee
- var headEmployee = new HeadEmployeeQuery (ModelContext).FirstOrDefault (division.DivisionID, division.HeadPositionID);
+ var headEmployee = new HeadEmployeesQuery (ModelContext)
+ .GetHeadEmployees (division.DivisionID, division.HeadPositionID)
+ .FirstOrDefault (he => he.IsPublished (now));
- if (headEmployee != null && headEmployee.IsPublished (now)) {
+ if (headEmployee != null) {
var headPosition = headEmployee.Positions
.Single (op => op.DivisionID == division.DivisionID && op.PositionID == division.HeadPositionID);