public void AddValue(EPDistributionValue value) { SortedKeyMap2 <DistributionValueCollection> m = this.m_Map.GetItemExact( value.JurisdictionId, value.DistributionTypeId); if (m == null) { m = new SortedKeyMap2 <DistributionValueCollection>(SearchMode.ExactPrevNext); this.m_Map.AddItem(value.JurisdictionId, value.DistributionTypeId, m); } DistributionValueCollection c = m.GetItemExact(value.Iteration, value.Timestep); if (c == null) { c = new DistributionValueCollection(); m.AddItem(value.Iteration, value.Timestep, c); } c.Add(value); }
private void FillDistributionValueCollection() { Debug.Assert(this.m_DistributionValues.Count == 0); DataSheet ds = this.Scenario.GetDataSheet(Shared.DISTRIBUTION_VALUE_DATASHEET_NAME); foreach (DataRow dr in ds.GetData().Rows) { try { DistributionFrequency?ValueDistributionFrequency = null; if (dr[Shared.DISTRIBUTION_VALUE_VALUE_DIST_FREQUENCY_COLUMN_NAME] != DBNull.Value) { ValueDistributionFrequency = (DistributionFrequency)(long)dr[Shared.DISTRIBUTION_VALUE_VALUE_DIST_FREQUENCY_COLUMN_NAME]; } EPDistributionValue Item = new EPDistributionValue( Shared.GetNullableInt(dr, Shared.ITERATION_COLUMN_NAME), Shared.GetNullableInt(dr, Shared.TIMESTEP_COLUMN_NAME), Shared.GetNullableInt(dr, Shared.JURISDICTION_COLUMN_NAME), Convert.ToInt32(dr[Shared.DISTRIBUTION_VALUE_DIST_TYPE_ID_COLUMN_NAME], CultureInfo.InvariantCulture), Shared.GetNullableInt(dr, Shared.DISTRIBUTION_VALUE_EXTVAR_TYPE_ID_COLUMN_NAME), Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_EXTVAR_MIN_COLUMN_NAME), Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_EXTVAR_MAX_COLUMN_NAME), Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_DIST_VALUE_COLUMN_NAME), Shared.GetNullableInt(dr, Shared.DISTRIBUTION_VALUE_VALUE_DIST_TYPE_ID_COLUMN_NAME), ValueDistributionFrequency, Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_VALUE_DIST_SD_COLUMN_NAME), Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_VALUE_DIST_MIN_COLUMN_NAME), Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_VALUE_DIST_MAX_COLUMN_NAME), Shared.GetNullableDouble(dr, Shared.DISTRIBUTION_VALUE_VALUE_DIST_RELATIVE_FREQUENCY_COLUMN_NAME)); this.Validate(Item.ValueDistributionTypeId, Item.Value, Item.ValueDistributionSD, Item.ValueDistributionMin, Item.ValueDistributionMax); this.m_DistributionValues.Add(Item); } catch (Exception ex) { throw new ArgumentException(ds.DisplayName + " -> " + ex.Message); } } }