public String FindAndFormatRange(String format, String find, SimilarRanges ranges, String field)
        {
            SimilarRange range = ranges.Find(find);

            return
                (String.Format(format,
                               field, range.Min, range.Max)
                );
        }
        private SimilarRange InitDemographicsRange(SligoCS.BL.WI.QueryMarshaller Marshaller, String Name, String Column)
        {
            String strMeasure = Marshaller.Database.GetStringColumn(Column);
            double meas = Double.Parse(strMeasure);
            double min, max;

            if (meas < 10.01)
            {
                min = 0;
                max = 10;
            }
            else if (meas < 25.01)
            {
                min = 10.01;
                max = 25;
            }
            else if (meas < 50.01)
            {
                min = 25.01;
                max = 50;
            }
            else //if (meas > 50)
            {
                if (Name == Marshaller.GlobalValues.ECON.Name &&
                    meas > 75)
                {
                    min = 75.01;
                }
                else
                {
                    min = 50.01;
                }

                if (Name == Marshaller.GlobalValues.ECON.Name &&
                    meas < 75.01)
                {
                    max = 75;
                }
                else
                {
                    max = 100; // "infinity"
                }
            }

            SimilarRange range = new SimilarRange();

            range.MeasureName = Name;
            range.Min         = min.ToString();
            range.Max         = max.ToString();

            return(range);
        }
        private SimilarRange InitSizeRange(SligoCS.BL.WI.QueryMarshaller Marshaller)
        {
            String strSize = Marshaller.Database.GetStringColumn(v_WSASDemographics.District_Size);
            Int32  size = Int32.Parse(strSize);
            Int32  min, max;

            if (size < 501)
            {
                min = 1;
                max = 500;
            }
            else if (size < 1001)
            {
                min = 501;
                max = 1000;
            }
            else if (size < 2001)
            {
                min = 1001;
                max = 2000;
            }
            else if (size < 10001)
            {
                min = 2001;
                max = 10000;
            }
            else
            {
                min = 10001;
                max = Int32.MaxValue; //"infinity"
            }

            SimilarRange range = new SimilarRange();

            range.MeasureName = Marshaller.GlobalValues.SIZE.Name;
            range.Min         = min.ToString();
            range.Max         = max.ToString();

            return(range);
        }
        //http://dpi.wi.gov/oea_similar

        private SimilarRange InitSpendingRange(SligoCS.BL.WI.QueryMarshaller Marshaller)
        {
            String strSpend = Marshaller.Database.GetStringColumn(v_WSASDemographics.Cost_Per_Member);
            Double spend;
            int    min, max;

            if (!Double.TryParse(strSpend, out spend))
            {
                spend = 0;
            }

            min = 0;

            if (spend < 9500.01)
            {
                max = 9500;
            }
            else if (spend < 10500.01)
            {
                max = 10500;
            }
            else if (spend < 11500.01)
            {
                max = 11500;
            }
            else
            {
                max = Int32.MaxValue;
            }

            SimilarRange range = new SimilarRange();

            range.MeasureName = Marshaller.GlobalValues.SPEND.Name;
            range.Min         = min.ToString() + ".0";
            range.Max         = max.ToString() + ".0";

            return(range);
        }
        public String SimilarDefinitionDescription()
        {
            System.Text.StringBuilder definition = new System.Text.StringBuilder("Criteria Selected for Defining Similar**:");

            /*if (GlobalValues.SPEND.Key == SPENDKeys.On) definition.Append("\n" + RelKeys.DistrictSpending + " <= 1000000");
             * if (GlobalValues.SIZE.Key == SIZEKeys.On) definition.Append("\n" + RelKeys.DistrictSize + " <= 1000000");
             * if (GlobalValues.ECON.Key == ECONKeys.On) definition.Append("\n" + RelKeys.EconDisadvantaged + " <= 1600");
             * if (GlobalValues.DISABILITY.Key == DISABILITYKeys.On) definition.Append("\n" + RelKeys.Disabilities + " <= 1600");
             * if (GlobalValues.LEP.Key == LEPKeys.On) definition.Append("\n" + RelKeys.LEP + " <= 1600");
             */
            DALWSASSimilarSchools dal = (DALWSASSimilarSchools)Database;

            dal.Ranges = dal.InitSimilarRanges(QueryMarshaller);
            String frmtDemographics = (GlobalValues.Sim.Key != SimKeys.AllSimilar)
                ? "\n {0} >= {1}%"
                : "\n {0} >= {1}% and <= {2}%"
            ;

            if (dal.Ranges.Exists(GlobalValues.SPEND.Name))
            {
                SimilarRange range     = dal.Ranges.Find(GlobalValues.SPEND.Name);
                String       spendFrmt = "\n {0}";

                if (GlobalValues.Sim.Key == SimKeys.AllSimilar)
                {
                    spendFrmt += " >= ${1:#,###} and";
                }

                spendFrmt += (Double.Parse(range.Max) < 11500.01)
                    ? " <= ${2:#,###}"
                    : " <= Any"
                ;

                definition.Append(String.Format(spendFrmt, "District Current Education Cost Per Member ", range.Min, range.Max));
            }

            if (dal.Ranges.Exists(GlobalValues.SIZE.Name))
            {
                SimilarRange range = dal.Ranges.Find(GlobalValues.SIZE.Name);

                String sizeFrmt =
                    (Decimal.Parse(range.Max) >= 10001)
                ? "\n {0} is greater than 10,000 Students"
                : "\n {0} is between {1:#,###} and {2:#,###} Students";

                definition.Append(String.Format(sizeFrmt, "District Size – Fall Enrollment"
                                                , Int32.Parse(dal.Ranges.Find(GlobalValues.SIZE.Name).Min)
                                                , Int32.Parse(dal.Ranges.Find(GlobalValues.SIZE.Name).Max)));
            }

            if (dal.Ranges.Exists(GlobalValues.ECON.Name))
            {
                definition.Append(
                    String.Format(frmtDemographics, RelKeys.EconDisadvantaged,
                                  dal.Ranges.Find(GlobalValues.ECON.Name).Min,
                                  dal.Ranges.Find(GlobalValues.ECON.Name).Max
                                  ));
            }

            if (dal.Ranges.Exists(GlobalValues.DISABILITY.Name))
            {
                definition.Append(
                    String.Format(frmtDemographics, RelKeys.Disabilities,
                                  dal.Ranges.Find(GlobalValues.DISABILITY.Name).Min,
                                  dal.Ranges.Find(GlobalValues.DISABILITY.Name).Max
                                  ));
            }

            if (dal.Ranges.Exists(GlobalValues.LEP.Name))
            {
                definition.Append
                    (String.Format(frmtDemographics, RelKeys.LEP,
                                   dal.Ranges.Find(GlobalValues.LEP.Name).Min,
                                   dal.Ranges.Find(GlobalValues.LEP.Name).Max
                                   ));
            }


            if (GlobalValues.NoChce.Key == NoChceKeys.On)
            {
                definition.Append("\n" + "No Criteria Chosen");
            }

            return(definition.ToString());
        }