示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="DataDirectory"></param>
        /// <param name="Filename"></param>
        public UnitData(string DataDirectory, string Filename)
        {
            string errMessage = "";
            bool   isErr      = false;

            FDataDirectory = DataDirectory;
            FFilename      = Filename;
            UniDbConnection DbCon = new UniDbConnection(SQLServer.stText, "", FDataDirectory, "", "", "")
            {
                UseFieldHeaders = true
            };

            DbCon.Open();
            TheData = Tools.LoadTable(DbCon, FFilename, ref isErr, ref errMessage);
            if (isErr)
            {
                throw new Exception("Error loading Rate Data. " + errMessage);
            }
            // build data arrays
            int arraysize = TheData.Rows.Count;

            FCOriverFlows   = new double[arraysize];
            FCOriverInFlows = new double[arraysize];
            //int CodeI = 0;
            foreach (DataRow DR in TheData.Rows)
            {
                // Get name and code
                // Setup to use region or state codes
                string namestr = DR[FNameFieldStr].ToString();

                // Decided not to use code in DataTable
                // int codeint = Tools.ConvertToInt32(codestr,ref isErr,ref errMessage);


                if (!isErr)
                {
                    string rCOriverFlows   = DR[FColoradoRiverFlowData].ToString();
                    string rCOriverInFlows = DR[FColoradoRiverInFlowData].ToString();
                    string ryearsstr       = DR[FcurrentYearFieldStr].ToString();

                    double TempCO = Tools.ConvertToDouble(rCOriverFlows, ref isErr, ref errMessage);
                    if (!isErr)
                    {
                        double TempCOinFlow = Tools.ConvertToDouble(rCOriverInFlows, ref isErr, ref errMessage);
                        if (!isErr)
                        {
                            int TempYear = Tools.ConvertToInt32(ryearsstr, ref isErr, ref errMessage);
                            if (!isErr)
                            {
                                // OK
                                //string aUnitName, string aUnitCode, double anAcerageUrban, double anAcerageAg, double anAcerageInd, int aYear
                                FlowData UD = new FlowData(namestr, TempCO, TempCOinFlow, TempYear);
                                FDataList.Add(UD);
                                //// add to dictionary
                            }
                        }
                    }
                }
            }
        }
示例#2
0
        public double FastInFlow(int year)
        {
            double   temp    = InvalidRate;
            FlowData TheData = FDataList.Find(delegate(FlowData FD) {
                return((FD.TheYear == year));
            });

            temp = TheData.COriverInFlows;
            return(temp);
        }