示例#1
0
        public static Dictionary <tsdZoneArray, Dictionary <string, double[]> > YearlyValues(this HeatingDesignData heatingDesignData, IEnumerable <tsdZoneArray> tSDZoneArrays)
        {
            if (heatingDesignData == null || tSDZoneArrays == null)
            {
                return(null);
            }

            return(YearlyValues(heatingDesignData.ZoneDatas(), tSDZoneArrays));
        }
示例#2
0
        public static Dictionary <string, Tuple <double, int, HeatingDesignData> > MaxValueDictionary(this IEnumerable <HeatingDesignData> heatingDesignDatas, tsdZoneArray tsdZoneArray)
        {
            if (heatingDesignDatas == null)
            {
                return(null);
            }

            Dictionary <string, Tuple <double, int, HeatingDesignData> > result = new Dictionary <string, Tuple <double, int, HeatingDesignData> >();

            if (heatingDesignDatas.Count() == 0)
            {
                return(result);
            }

            HeatingDesignData heatingDesignData = heatingDesignDatas.ElementAt(0);

            if (heatingDesignData == null)
            {
                return(result);
            }


            List <ZoneData> zoneDatas = heatingDesignData.ZoneDatas();

            if (zoneDatas == null || zoneDatas.Count == 0)
            {
                return(result);
            }

            object[,] values = heatingDesignData.GetPeakZoneGains(new short[1] {
                (short)tsdZoneArray
            });

            for (int i = 0; i < zoneDatas.Count; i++)
            {
                string id    = zoneDatas[i].zoneGUID;
                double value = (float)values[1, i];
                int    index = (int)values[2, i];

                result[id] = new Tuple <double, int, HeatingDesignData>(value, index, heatingDesignData);
            }

            for (int i = 1; i < heatingDesignDatas.Count(); i++)
            {
                values = heatingDesignDatas.ElementAt(i).GetPeakZoneGains(new short[1] {
                    (short)tsdZoneArray
                });
                for (int j = 0; j < zoneDatas.Count; j++)
                {
                    string id    = zoneDatas[j].zoneGUID;
                    double value = (float)values[1, j];
                    int    index = (int)values[2, j];

                    if (!result.TryGetValue(id, out Tuple <double, int, HeatingDesignData> tuple))
                    {
                        result[id] = new Tuple <double, int, HeatingDesignData>(value, index, heatingDesignData);
                    }
                    else if (tuple.Item1 < value)
                    {
                        tuple      = new Tuple <double, int, HeatingDesignData>(value, index, heatingDesignDatas.ElementAt(i));
                        result[id] = tuple;
                    }
                }
            }

            return(result);
        }