Dev2.ConnectionHelpers.ConnectControlSingleton.EditConnection C# (CSharp) Method

EditConnection() public method

public EditConnection ( int selectedIndex, Action openWizard ) : void
selectedIndex int
openWizard Action
return void
        public void EditConnection(int selectedIndex, Action<int> openWizard)
        {
            if(selectedIndex != -1 && selectedIndex <= Servers.Count)
            {
                var selectedServer = Servers[selectedIndex];
                var environmentModel = selectedServer.EnvironmentModel;
                if(environmentModel != null && environmentModel.Connection != null)
                {
                    var serverUri = environmentModel.Connection.AppServerUri;
                    var auth = environmentModel.Connection.AuthenticationType;
                    openWizard(selectedIndex);
                    var updatedServer = _environmentRepository.All().FirstOrDefault(e => e.ID == environmentModel.ID);
                    if (updatedServer != null && (!serverUri.Equals(updatedServer.Connection.AppServerUri) || auth != updatedServer.Connection.AuthenticationType))
                    {
                        if(ConnectedStatusChanged != null)
                        {
                            ConnectedStatusChanged(this, new ConnectionStatusChangedEventArg(ConnectionEnumerations.ConnectedState.Busy, environmentModel.ID, false));
                        }

                        if(selectedServer.IsConnected)
                        {
                            _studioResourceRepository.Disconnect(environmentModel.ID);
                        }
                        selectedServer.EnvironmentModel = updatedServer;
                        _studioResourceRepository.Load(environmentModel.ID, _asyncWorker, ResourcesLoadedHandler);
                    }
                }
            }
        }

Usage Example

 public void ConnectControlSingleton_EditConnection_SelectedServerIndexIsOutOfRange_StudioResourceRepositoryDisconnectIsNotCalled()
 {
     var studioResourceRepository = new Mock<IStudioResourceRepository>();
     studioResourceRepository.Setup(s => s.Disconnect(It.IsAny<Guid>())).Verifiable();
     var asyncWorker = new Mock<IAsyncWorker>();
     var serverProvider = new Mock<IEnvironmentModelProvider>();
     var environmentRepository = new Mock<IEnvironmentRepository>();
     var environmentModels = new List<IEnvironmentModel>
         {
             new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(true).Object, new Mock<IResourceRepository>().Object, false),
             new TestEnvironmentModel(new Mock<IEventAggregator>().Object, Guid.NewGuid(), CreateConnection(false).Object, new Mock<IResourceRepository>().Object, false)
         };
     serverProvider.Setup(s => s.Load()).Returns(environmentModels);
     IConnectControlSingleton connectControlSingleton = new ConnectControlSingleton(studioResourceRepository.Object, asyncWorker.Object, serverProvider.Object, environmentRepository.Object);
     var wasCallbackInvoked = false;
     //------------Execute Test---------------------------
     connectControlSingleton.EditConnection(99, index =>
     {
         wasCallbackInvoked = true;
     });
     connectControlSingleton.EditConnection(-1, index =>
     {
         wasCallbackInvoked = true;
     });
     //------------Assert Results-------------------------
     Assert.IsNotNull(connectControlSingleton);
     Assert.IsFalse(wasCallbackInvoked);
     studioResourceRepository.Verify(s => s.Disconnect(It.IsAny<Guid>()), Times.Never());
 }
All Usage Examples Of Dev2.ConnectionHelpers.ConnectControlSingleton::EditConnection