Пример #1
0
        /// <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;
            }
        }