/// <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;
            }
        }
        /// <summary>
        /// Initializes the specified model.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="parentViewModel">The parent view model.</param>
        /// <exception cref="System.ArgumentNullException">
        /// model
        /// or
        /// parentViewModel
        /// </exception>
        public void Initialize(ProcessIntegrationServiceEdit model, IProcessIntegrationServicesViewModel parentViewModel)
        {
            if (model == null)
                throw new ArgumentNullException("model");
            
            if (parentViewModel == null)
                throw new ArgumentNullException("parentViewModel");

            ParentViewModel = parentViewModel;
            ServiceSettingsViewModel = null;
            Refresh(model);
        }