/// <summary>
/// Gets the service settings.
/// </summary>
/// <param name="serviceId">The service identifier.</param>
/// <param name="direction">The direction.</param>
/// <returns>IIntegrationServiceSettings.</returns>
/// <exception cref="System.ArgumentOutOfRangeException">direction</exception>
        public IIntegrationServiceSettings GetServiceSettings(int serviceId, IntegrationServiceDirection direction)
        {
            switch (direction)
            {
                case IntegrationServiceDirection.Create:
                    return ServiceCreationSettingsEdit.GetServiceCreationSettings(serviceId);

                case IntegrationServiceDirection.Call:
                    return ServiceCallSettingsEdit.GetServiceCallSettings(serviceId);
                
                default:
                    throw new ArgumentOutOfRangeException("direction");
            }
        }
        /// <summary>
        /// Refreshes the specified model.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <exception cref="System.ArgumentNullException">model</exception>
        public void Refresh(ProcessIntegrationServiceEdit model)
        {
            if (model == null)
                throw new ArgumentNullException("model");

            if (_serviceDirection != model.ServiceDirection)
                ServiceSettingsViewModel = null;

            Model = model;
            _serviceDirection = Model.ServiceDirection;

            if (model.ServiceSettings.Any())
            {
                if (ServiceSettingsViewModel == null)
                    ServiceSettingsViewModel = ServiceSettingsViewModelFactory.CreateViewModel(model.ServiceSettings.First(), this);
                else
                    ServiceSettingsViewModel.Refresh(model.ServiceSettings.First());
            }
            else
            {
                ServiceSettingsViewModel = null;
            }
        }