/// <summary> /// Called by constructor, adds Rfc params contained in /// Xml document. /// </summary> /// <param name="destinationName">The destination name used in repositiry</param> /// <returns>The collection of RFC parameters</returns> public void UpdateParameters(XmlDocument configDOM) { RfcConfigParameters parameters = new RfcConfigParameters(); parameters.Add(RfcConfigParameters.AppServerHost, SAPIDocUtils.Extract(configDOM, "/Config/appServerHost").ToString()); parameters.Add(RfcConfigParameters.Client, SAPIDocUtils.Extract(configDOM, "/Config/client").ToString()); parameters.Add(RfcConfigParameters.Language, SAPIDocUtils.Extract(configDOM, "/Config/language").ToString()); parameters.Add(RfcConfigParameters.MaxPoolSize, SAPIDocUtils.Extract(configDOM, "/Config/maxPoolSize").ToString()); parameters.Add(RfcConfigParameters.MaxPoolWaitTime, SAPIDocUtils.Extract(configDOM, "/Config/maxPoolSizeWaitTime").ToString()); parameters.Add(RfcConfigParameters.MessageServerHost, SAPIDocUtils.Extract(configDOM, "/Config/messageServerHost").ToString()); //parameters.Add(RfcConfigParameters.PoolSize, SAPIDocUtils.Extract(configDOM, "/Config/poolSize")); parameters.Add(RfcConfigParameters.SystemID, SAPIDocUtils.Extract(configDOM, "/Config/systemID").ToString()); parameters.Add(RfcConfigParameters.SystemNumber, SAPIDocUtils.Extract(configDOM, "/Config/systemNumber").ToString()); parameters.Add(RfcConfigParameters.User, SAPIDocUtils.Extract(configDOM, "/Config/username")); parameters.Add(RfcConfigParameters.Password, SAPIDocUtils.Extract(configDOM, "/Config/password")); parameters.Add(RfcConfigParameters.RepositoryDestination, _destinationName); RfcConfigParameters existingConfiguration; //if a destination of that name existed before, we need to fire a change event if (availableDestinations.TryGetValue(_destinationName, out existingConfiguration)) { availableDestinations[_destinationName] = parameters; RfcConfigurationEventArgs eventArgs = new RfcConfigurationEventArgs(RfcConfigParameters.EventType.CHANGED, parameters); System.Diagnostics.Trace.WriteLine("Fire change event " + eventArgs.ToString() + " for destination " + _destinationName); // fire changed event if (ConfigurationChanged != null) { ConfigurationChanged(_destinationName, eventArgs); } } else { availableDestinations[_destinationName] = parameters; } }
/// <summary> /// Called from constructor /// </summary> /// <param name="locationConfigDom">Xml containing parameters, passed by BizTalk</param> public void UpdateParameters(string serverName, string destinationName, XmlDocument configDOM) { RfcConfigParameters parameters = new RfcConfigParameters(); parameters.Add(RfcConfigParameters.RepositoryDestination, destinationName); parameters.Add(RfcConfigParameters.Name, serverName); parameters.Add(RfcConfigParameters.GatewayHost, SAPIDocUtils.Extract(configDOM, "/Config/gatewayHost").ToString()); parameters.Add(RfcConfigParameters.GatewayService, SAPIDocUtils.Extract(configDOM, "/Config/gatewayService").ToString()); parameters.Add(RfcConfigParameters.ProgramID, SAPIDocUtils.Extract(configDOM, "/Config/programID").ToString()); parameters.Add(RfcConfigParameters.RegistrationCount, SAPIDocUtils.Extract(configDOM, "/Config/registrationCount").ToString()); parameters.Add(RfcConfigParameters.Trace, SAPIDocUtils.ExtractUInt(configDOM, "/Config/rfcTrace").ToString()); RfcConfigParameters existingConfiguration; //if a destination of that name existed before, we need to fire a change event if (availableDestinations.TryGetValue(serverName, out existingConfiguration)) { availableDestinations[serverName] = parameters; RfcConfigurationEventArgs eventArgs = new RfcConfigurationEventArgs(RfcConfigParameters.EventType.CHANGED, parameters); System.Diagnostics.Trace.WriteLine("Fire change event " + eventArgs.ToString() + " for destination " + serverName); // fire changed event if (ConfigurationChanged != null) { ConfigurationChanged(serverName, eventArgs); } } else { availableDestinations[serverName] = parameters; } }