コード例 #1
0
        private void PopulateSlip(ref Core.Helpers.Elements.CoverSlips.Slip slip, SqlDataReader dataReader, bool isInternal, DateTime creationDate)
        {
            slip.CoverDate = this._selectedDate;
            slip.Period    = (int)dataReader["Period"];
            slip.Room      = dataReader["CoverRoom"] as string;
            slip.CoverStaffDetails.Forename = dataReader["CoveringForename"] as string;
            slip.CoverStaffDetails.Surname  = dataReader["CoveringSurname"] as string;

            if (isInternal)
            {
                slip.CoverStaffDetails.HoldingName = dataReader["CoveringHoldingName"] as string;
                slip.CoverStaffDetails.MainRoom    = dataReader["CoveringMainRoom"] as string;
                slip.CoverStaffDetails.Department  = dataReader["CoveringDepartment"] as string;
            }

            slip.AbsentStaffDetails.Forename    = dataReader["AbsentForename"] as string;
            slip.AbsentStaffDetails.Surname     = dataReader["AbsentSurname"] as string;
            slip.AbsentStaffDetails.HoldingName = dataReader["AbsentHoldingName"] as string;

            slip.ClassDetails.Name    = dataReader["CommitmentName"] as string;
            slip.ClassDetails.Subject = dataReader["SubjectName"] as string;

            slip.IsInternalCover = isInternal;
            slip.CoverId         = (int)dataReader["CoverId"];
        }
コード例 #2
0
        protected override void SetPrintContent()
        {
            if (this.CheckInputValidity())
            {
                DateTime creationDate = DateTime.Now;

                Core.Helpers.Constructor pageContent = new Core.Helpers.Constructor("/Templates/Specific/Cover/Slips/Printouts/valid.html");
                Core.Helpers.Database.ParameterBuilder paramBuilder = new Core.Helpers.Database.ParameterBuilder();
                pageContent.SetVariable("CoverDate", this._selectedDate.ToString("dddd, dd MMMM yyyy"));

                paramBuilder.AddParameter(SqlDbType.SmallDateTime, "@Date", this._selectedDate);
                paramBuilder.AddParameter(SqlDbType.Int, "@WeekNo", this._timetableWeek);
                paramBuilder.AddParameter(SqlDbType.Int, "@DayNo", (int)(this._selectedDate.DayOfWeek + 1));

                int internalCount = 0;
                int outsideCount  = 0;

                using (SqlDataReader dataReader = Core.Helpers.Database.Provider.ExecuteReader("/Sql/Specific/Cover/Slips/Printouts/daylist.sql", paramBuilder.Parameters)) {
                    if (dataReader.HasRows)
                    {
                        Core.Helpers.Constructor internalConstructor = new Core.Helpers.Constructor("/Templates/Specific/Cover/Slips/Printouts/internalcover.html");
                        Core.Helpers.Elements.CoverSlips.Collection internalCollection = new Core.Helpers.Elements.CoverSlips.Collection();
                        int pageCount     = 0;
                        int pageSlipCount = 0;

                        while (dataReader.Read())
                        {
                            Core.Helpers.Elements.CoverSlips.Slip slip = new Core.Helpers.Elements.CoverSlips.Slip();

                            this.PopulateSlip(ref slip, dataReader, true, creationDate);

                            if (pageCount.Equals(0) && pageSlipCount.Equals(3))
                            {
                                slip.PageBreakBefore = true;
                                pageCount++;
                                pageSlipCount = 0;
                            }
                            else if (pageSlipCount.Equals(3))
                            {
                                slip.PageBreakBefore = true;
                                pageCount++;
                                pageSlipCount = 0;
                            }
                            else
                            {
                                pageSlipCount++;
                            }

                            internalCollection.Add(slip);
                            internalCount++;
                        }

                        internalConstructor.SetVariable("Slips", internalCollection.ToString());
                        pageContent.SetVariable("InternalCoverCount", internalCount.ToString());
                        pageContent.SetVariable("InternalCoverSlips", internalConstructor);
                    }
                    else
                    {
                        pageContent.SetVariable("InternalCoverCount", "0");
                        pageContent.DeleteVariable("InternalCoverSlips");
                    }

                    dataReader.NextResult();

                    if (dataReader.HasRows)
                    {
                        Core.Helpers.Constructor outsideConstructor = new Core.Helpers.Constructor("/Templates/Specific/Cover/Slips/Printouts/outsidecover.html");
                        Core.Helpers.Elements.CoverSlips.Collection outsideCollection = new Core.Helpers.Elements.CoverSlips.Collection();

                        if (internalCount > 0)
                        {
                            outsideConstructor.SetVariable("BreakBefore", " class=\"BreakBefore\"");
                        }
                        else
                        {
                            outsideConstructor.DeleteVariable("BreakBefore");
                        }

                        int pageCount     = 0;
                        int pageSlipCount = 0;

                        while (dataReader.Read())
                        {
                            Core.Helpers.Elements.CoverSlips.Slip slip = new Core.Helpers.Elements.CoverSlips.Slip();

                            this.PopulateSlip(ref slip, dataReader, false, creationDate);

                            if (!internalCount.Equals(0) && pageCount.Equals(0) && pageSlipCount.Equals(4))
                            {
                                slip.PageBreakBefore = true;
                                pageCount++;
                                pageSlipCount = 0;
                            }
                            else if (internalCount.Equals(0) && pageCount.Equals(0) && pageSlipCount.Equals(3))
                            {
                                slip.PageBreakBefore = true;
                                pageCount++;
                                pageSlipCount = 0;
                            }
                            else if (!pageCount.Equals(0) && pageSlipCount.Equals(3))
                            {
                                slip.PageBreakBefore = true;
                                pageCount++;
                                pageSlipCount = 0;
                            }
                            else
                            {
                                pageSlipCount++;
                            }

                            outsideCollection.Add(slip);
                            outsideCount++;
                        }

                        outsideConstructor.SetVariable("Slips", outsideCollection.ToString());
                        pageContent.SetVariable("OutsideCoverCount", outsideCount.ToString());
                        pageContent.SetVariable("OutsideCoverSlips", outsideConstructor);
                    }
                    else
                    {
                        pageContent.SetVariable("OutsideCoverCount", "0");
                        pageContent.DeleteVariable("OutsideCoverSlips");
                    }
                }

                this.Page.SetVariable("PrintArea", pageContent);
            }
            else
            {
                this.Page.SetVariable("PrintArea", new Core.Helpers.Constructor("/Templates/Specific/Cover/Slips/Printouts/badrequest.html"));
            }
        }