protected override void GenerateOutput() { Core.Helpers.Elements.Ajax.Xml.Collection xmlCollection = new Core.Helpers.Elements.Ajax.Xml.Collection(); bool isInternalStaff; int coverId; int staffId; if (this.CheckInputValidity() && this.IsInternalStaff(out isInternalStaff) && this.GetValue(out coverId) && this.GetValue(out staffId)) { DateTime startDate = Core.WebServer.PleaseTakes.Session.CurrentInstance.School.Settings.Timetabling.SessionDetails.CurrentSession.GetDateSessionInformation(this._selectedDate).RotationStartDate; DateTime endDate = Core.WebServer.PleaseTakes.Session.CurrentInstance.School.Settings.Timetabling.SessionDetails.CurrentSession.GetDateSessionInformation(this._selectedDate).RotationEndDate; Core.Helpers.Database.ParameterBuilder paramBuilder = new Core.Helpers.Database.ParameterBuilder(); paramBuilder.AddParameter(SqlDbType.Bit, "@IsInternalStaff", isInternalStaff); paramBuilder.AddParameter(SqlDbType.Int, "@CoverId", coverId); paramBuilder.AddParameter(SqlDbType.Int, "@StaffId", staffId); paramBuilder.AddParameter(SqlDbType.SmallDateTime, "@StartDate", startDate); paramBuilder.AddParameter(SqlDbType.SmallDateTime, "@EndDate", endDate); paramBuilder.AddParameter(SqlDbType.Int, "@WeekNo", this._timetableWeek); paramBuilder.AddParameter(SqlDbType.Int, "@DayNo", (int)(this._selectedDate.DayOfWeek + 1)); using (SqlDataReader dataReader = Core.Helpers.Database.Provider.ExecuteReader("/Sql/Specific/Cover/Arrange/Selection/Selection/modify.sql", paramBuilder.Parameters)) { dataReader.Read(); if ((bool)dataReader["Status"]) { dataReader.NextResult(); if (dataReader.HasRows) { while (dataReader.Read()) { Core.Helpers.Elements.Ajax.Xml.Element xmlElement = new Core.Helpers.Elements.Ajax.Xml.Element(); if ((bool)dataReader["IsRequest"]) { Records.RequestBase record = new Records.RequestBase(); xmlElement.Id = "Request" + (int)dataReader["Id"]; if ((bool)dataReader["RequestHasCover"]) { Records.CoverSelected newRecord = new Records.CoverSelected(); xmlElement.ClassName = "Green"; UserManagement.StaffNameFormatter staffAbsenteeNameFormatter = new UserManagement.StaffNameFormatter(); staffAbsenteeNameFormatter.Forename = dataReader["RequestAbsentForename"] as string; staffAbsenteeNameFormatter.Surname = dataReader["RequestAbsentSurname"] as string; staffAbsenteeNameFormatter.HoldingName = dataReader["RequestAbsentHoldingname"] as string; newRecord.AbsenteeName = staffAbsenteeNameFormatter; //newRecord.AbsenteeName = Core.Utils.FormatStaffName(dataReader["RequestAbsentForename"] as string, dataReader["RequestAbsentSurname"] as string, dataReader["RequestAbsentHoldingname"] as string, false, false, false); newRecord.Period = (int)dataReader["RequestPeriod"]; newRecord.CommitmentName = dataReader["RequestCommitmentName"] as string; newRecord.IsInternalCover = (bool)dataReader["IsInternalCover"]; UserManagement.StaffNameFormatter staffCoveringNameFormatter = new UserManagement.StaffNameFormatter(); staffCoveringNameFormatter.Forename = dataReader["RequestCoverForename"] as string; staffCoveringNameFormatter.Surname = dataReader["RequestCoverSurname"] as string; staffCoveringNameFormatter.HoldingName = dataReader["RequestCoverHoldingName"] as string; newRecord.CoverStaffName = staffCoveringNameFormatter; //newRecord.CoverStaffName = Core.Utils.FormatStaffName(dataReader["RequestCoverForename"] as string, dataReader["RequestCoverSurname"] as string, dataReader["RequestCoverHoldingName"] as string, false, false, false); record = newRecord; } else { Records.NoCoverSelected newRecord = new Records.NoCoverSelected(); xmlElement.ClassName = "Red"; UserManagement.StaffNameFormatter absenteeNameFormatter = new UserManagement.StaffNameFormatter(); absenteeNameFormatter.Forename = dataReader["RequestAbsentForename"] as string; absenteeNameFormatter.Surname = dataReader["RequestAbsentSurname"] as string; absenteeNameFormatter.HoldingName = dataReader["RequestAbsentHoldingName"] as string; newRecord.AbsenteeName = absenteeNameFormatter; //newRecord.AbsenteeName = Core.Utils.FormatStaffName(dataReader["RequestAbsentForename"] as string, dataReader["RequestAbsentSurname"] as string, dataReader["RequestAbsentHoldingName"] as string, false, false, false); newRecord.Period = (int)dataReader["RequestPeriod"]; newRecord.CommitmentName = dataReader["RequestCommitmentName"] as string; record = newRecord; } xmlElement.InnerHtml = record.InnerHtml; } else { Records.Selection record = new Records.Selection(); int entitlement = (int)dataReader["SelectionEntitlement"]; xmlElement.Id = "Selection" + (int)dataReader["Id"]; record.IsInternal = isInternalStaff; if (isInternalStaff) { UserManagement.StaffNameFormatter nameFormatter = new UserManagement.StaffNameFormatter(); nameFormatter.Forename = dataReader["SelectionForename"] as string; nameFormatter.Surname = dataReader["SelectionSurname"] as string; nameFormatter.HoldingName = dataReader["SelectionHoldingName"] as string; record.StaffName = nameFormatter; } else { UserManagement.StaffNameFormatter nameFormatter = new UserManagement.StaffNameFormatter(); nameFormatter.Forename = dataReader["SelectionForename"] as string; nameFormatter.Surname = dataReader["SelectionSurname"] as string; record.StaffName = nameFormatter; } if ((bool)dataReader["SelectionIsSelected"]) { xmlElement.ClassName = "Green"; } else if (entitlement.Equals(0)) { xmlElement.ClassName = "Red"; } else { xmlElement.ClassName = ""; } record.Entitlement = entitlement; xmlElement.InnerHtml = record.InnerHtml; } xmlCollection.Add(xmlElement); } } } } } this.Page.Contents = xmlCollection.ToString(); }
protected override void GenerateOutput() { bool isInternal = false; bool showZeroEntitlement = false; string statusMessage = ""; if (this.Path.HasNext()) { int coverId; string searchTerm; if (this.GetBoolInput(out isInternal) && this.GetBoolInput(out showZeroEntitlement) && this.CheckInputValidity() && this.GetCoverId(out coverId)) { DateTime startDate = Core.WebServer.PleaseTakes.Session.CurrentInstance.School.Settings.Timetabling.SessionDetails.CurrentSession.GetDateSessionInformation(this._selectedDate).RotationStartDate; DateTime endDate = Core.WebServer.PleaseTakes.Session.CurrentInstance.School.Settings.Timetabling.SessionDetails.CurrentSession.GetDateSessionInformation(this._selectedDate).RotationEndDate; searchTerm = this.GetSearchTerm(); Core.Helpers.Database.ParameterBuilder paramBuilder = new Core.Helpers.Database.ParameterBuilder(); paramBuilder.AddParameter(SqlDbType.Int, "@CoverId", coverId); paramBuilder.AddParameter(SqlDbType.Bit, "@GetInternalStaff", isInternal); paramBuilder.AddParameter(SqlDbType.SmallDateTime, "@CurrentDate", this._selectedDate); paramBuilder.AddParameter(SqlDbType.SmallDateTime, "@StartDate", startDate); paramBuilder.AddParameter(SqlDbType.SmallDateTime, "@EndDate", endDate); paramBuilder.AddParameter(SqlDbType.Int, "@WeekNo", this._timetableWeek); paramBuilder.AddParameter(SqlDbType.Int, "@DayNo", (int)(this._selectedDate.DayOfWeek + 1)); paramBuilder.AddParameter(SqlDbType.Bit, "@ShowZeroEntitlement", showZeroEntitlement); if (string.IsNullOrEmpty(searchTerm)) { paramBuilder.AddParameter(SqlDbType.VarChar, "@SearchTerm", ""); } else { paramBuilder.AddParameter(SqlDbType.VarChar, "@SearchTerm", searchTerm); } using (SqlDataReader dataReader = Core.Helpers.Database.Provider.ExecuteReader("/Sql/Specific/Cover/Arrange/Selection/Selection/list.sql", paramBuilder.Parameters)) { dataReader.Read(); if ((bool)dataReader["DoesExist"]) { dataReader.NextResult(); int staffCount = 0; if (dataReader.HasRows) { Core.Helpers.Elements.RecordLists.Collection recordCollection = new Core.Helpers.Elements.RecordLists.Collection(); recordCollection.Id = "Selection"; while (dataReader.Read()) { Records.Selection selectionRecord = new Records.Selection(); selectionRecord.Id = ((int)dataReader["Id"]).ToString(); selectionRecord.IsInternal = isInternal; selectionRecord.Entitlement = (int)dataReader["RemainingEntitlement"]; selectionRecord.IsSelected = (bool)dataReader["IsSelected"]; if (isInternal) { UserManagement.StaffNameFormatter nameFormatter = new UserManagement.StaffNameFormatter(); nameFormatter.Forename = dataReader["Forename"] as string; nameFormatter.Surname = dataReader["Surname"] as string; nameFormatter.HoldingName = dataReader["HoldingName"] as string; selectionRecord.StaffName = nameFormatter; } else { UserManagement.StaffNameFormatter nameFormatter = new UserManagement.StaffNameFormatter(); nameFormatter.Forename = dataReader["Forename"] as string; nameFormatter.Surname = dataReader["Surname"] as string; selectionRecord.StaffName = nameFormatter; } recordCollection.Add(selectionRecord.Record); staffCount++; } this.Page.Contents = recordCollection.ToString(); } else { Core.Helpers.Elements.Alerts.Alert noResultsAlert = new Core.Helpers.Elements.Alerts.Alert("NoReults"); noResultsAlert.Colour = Core.Helpers.Elements.Alerts.Colours.Yellow; noResultsAlert.Message = new Core.Helpers.Constructor("/Alerts/Specific/Cover/Arrange/Selection/Selection/noresults.html").ToString(); noResultsAlert.NoScript = false; noResultsAlert.ShowCloseBox = false; noResultsAlert.StartHidden = false; this.Page.Contents = noResultsAlert.ToString(); } if (staffCount.Equals(0)) { statusMessage = "<strong>Couldnae find anyone!</strong>"; } else if (staffCount.Equals(1)) { if (isInternal) { statusMessage = "Found <strong>1</strong> member of teaching staff"; } else { statusMessage = "Found <strong>1</strong> member of outside cover staff"; } } else if (isInternal) { statusMessage = "Found <strong>" + staffCount + "</strong> members of teaching staff"; } else { statusMessage = "Found <strong>" + staffCount + "</strong> members of outside cover staff"; } } else { Core.Helpers.Elements.Alerts.Alert requestDoesNotExistAlert = new Core.Helpers.Elements.Alerts.Alert("RequestDoesNotExist"); requestDoesNotExistAlert.Colour = Core.Helpers.Elements.Alerts.Colours.Red; requestDoesNotExistAlert.Message = new Core.Helpers.Constructor("/Alerts/Specific/Cover/Arrange/Selection/Selection/requestdoesnotexist.html").ToString(); requestDoesNotExistAlert.NoScript = false; requestDoesNotExistAlert.ShowCloseBox = false; requestDoesNotExistAlert.StartHidden = false; this.Page.Contents = requestDoesNotExistAlert.ToString(); } } } else { Core.Helpers.Elements.Alerts.Alert badInputAlert = new Core.Helpers.Elements.Alerts.Alert("BadInput"); badInputAlert.Colour = Core.Helpers.Elements.Alerts.Colours.Red; badInputAlert.Message = new Core.Helpers.Constructor("/Alerts/Specific/Cover/Arrange/Selection/Selection/badinput.html").ToString(); badInputAlert.NoScript = false; badInputAlert.ShowCloseBox = false; badInputAlert.StartHidden = false; this.Page.Contents = badInputAlert.ToString(); } } else { Core.Helpers.Elements.Alerts.Alert noRequestSelectedAlert = new Core.Helpers.Elements.Alerts.Alert("NoRequestSelected"); noRequestSelectedAlert.Colour = Core.Helpers.Elements.Alerts.Colours.Red; noRequestSelectedAlert.Message = new Core.Helpers.Constructor("/Alerts/Specific/Cover/Arrange/Selection/Selection/norequestselected.html").ToString(); noRequestSelectedAlert.NoScript = false; noRequestSelectedAlert.ShowCloseBox = false; noRequestSelectedAlert.StartHidden = false; this.Page.Contents = noRequestSelectedAlert.ToString(); } if (!string.IsNullOrEmpty(statusMessage)) { string hoverMessage = ""; if (isInternal && showZeroEntitlement) { hoverMessage = "Showing all available teaching staff"; } else if (isInternal && !showZeroEntitlement) { hoverMessage = "Showing available teaching staff with a remaining entitlement of 1 or greater"; } else if (!isInternal && showZeroEntitlement) { hoverMessage = "Showing all available outside cover staff"; } else { hoverMessage = "Showing available outside cover staff with a remaining entitlement of 1 or greater"; } statusMessage = "<p class=\"Plain\" title=\"" + hoverMessage + "\">" + statusMessage + "</p>"; } if (Core.WebServer.PleaseTakes.Session.CurrentInstance.TemporaryStorage.ContainsKey("ArrangeSelectionInfo")) { Core.WebServer.PleaseTakes.Session.CurrentInstance.TemporaryStorage["ArrangeSelectionInfo"] = statusMessage; } else { Core.WebServer.PleaseTakes.Session.CurrentInstance.TemporaryStorage.Add("ArrangeSelectionInfo", statusMessage); } }