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);