public void AddAttrParameter(RouteAttrInfo info) { Debug.Assert(info != null); _userParams.Add(info); }
public void SetNetworkAttributeParameterValue(string attrName, string paramName, object paramValue) { Debug.Assert(attrName != null); Debug.Assert(paramName != null); // find parameter in network description NetworkAttributeParameter param = null; if (!_FindParamInNetworkDesc(attrName, paramName, out param)) { // cannot find attribute throw new ArgumentException( Properties.Messages.Error_InvalidNetworkAttr); } string serializedValue = String.Empty; if (paramValue != null) { // If new value is not empty string or if parameter doesnt accept empty string - // try to serialize current value. if (paramValue as string != string.Empty || !param.IsEmptyStringValid) { object convertedValue = paramValue; // check if value type is correct if (!param.Type.Equals(paramValue.GetType())) { if (!_ConvertParamValue(paramValue, param.Type, out convertedValue)) { // provided value cannot be converted to required type throw new ArgumentException( Properties.Messages.Error_InvalidNetworkParamType); } } // serialize value for storing serializedValue = _SerializeParamValue(convertedValue); } } // try to find attribute in settings RouteAttrInfo attrInfo = _settings.GetUserAttrParameter(attrName, paramName); if (attrInfo != null) { // update existing attribute entry attrInfo.Value = serializedValue; } else { // add new attribute entry attrInfo = new RouteAttrInfo(); attrInfo.AttrName = attrName; attrInfo.ParamName = paramName; attrInfo.Value = serializedValue; _settings.AddAttrParameter(attrInfo); } }