Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
            }
        }