void OnServerClicked(object sender, ListViewRowEventArgs e)
        {
            var server = serverStore.GetValue(e.RowIndex, serverField);

            using (var projectsDialog = new ChooseProjectsDialog(server))
            {
                if (projectsDialog.Run(this) == Command.Ok && projectsDialog.SelectedProjects.Any())
                {
                    var selectedProjects = projectsDialog.SelectedProjects;
                    server.ProjectCollections = new List <ProjectCollection>(selectedProjects.Select(x => x.Collection).Distinct());
                    server.ProjectCollections.ForEach(pc => pc.Projects = new List <ProjectInfo>(selectedProjects.Where(pi => pi.Collection == pc)));
                    TFSVersionControlService.Instance.RaiseServersChange();
                    TFSVersionControlService.Instance.StorePrefs();
                }
            }
        }
 void OnAddServer(object sender, EventArgs e)
 {
     using (var dialog = new AddServerDialog())
     {
         if (dialog.Run(this) == Command.Ok && dialog.ServerInfo != null)
         {
             if (TFSVersionControlService.Instance.HasServer(dialog.ServerInfo.Name))
             {
                 MessageService.ShowError("Server with same name already exists!");
                 return;
             }
             using (var credentialsDialog = new CredentialsDialog(dialog.ServerType))
             {
                 if (credentialsDialog.Run(this) == Command.Ok && credentialsDialog.Authentication != null)
                 {
                     CredentialsManager.StoreCredential(dialog.ServerInfo.Uri, credentialsDialog.Authentication.Password);
                     var  password             = CredentialsManager.GetPassword(dialog.ServerInfo.Uri); //Try Get Password
                     bool isPasswordSavedInXml = false;
                     if (password == null)
                     {
                         MessageService.ShowWarning("No keyring service found!\nPassword will be saved as plain text.");
                         isPasswordSavedInXml = true;
                     }
                     var server = TeamFoundationServerFactory.Create(dialog.ServerType, dialog.ServerInfo,
                                                                     credentialsDialog.Authentication, isPasswordSavedInXml);
                     using (var projectsDialog = new ChooseProjectsDialog(server))
                     {
                         if (projectsDialog.Run(this) == Command.Ok && projectsDialog.SelectedProjects.Any())
                         {
                             var selectedProjects = projectsDialog.SelectedProjects;
                             server.ProjectCollections = new List <ProjectCollection>(selectedProjects.Select(x => x.Collection).Distinct());
                             server.ProjectCollections.ForEach(pc => pc.Projects = new List <ProjectInfo>(selectedProjects.Where(pi => pi.Collection == pc)));
                             TFSVersionControlService.Instance.AddServer(server);
                             UpdateServersList();
                         }
                     }
                 }
             }
         }
     }
 }
 void OnServerClicked(object sender, ListViewRowEventArgs e)
 {
     var server = serverStore.GetValue(e.RowIndex, serverField);
     using (var projectsDialog = new ChooseProjectsDialog(server))
     {
         if (projectsDialog.Run(this) == Command.Ok && projectsDialog.SelectedProjects.Any())
         {
             var selectedProjects = projectsDialog.SelectedProjects;
             server.ProjectCollections = new List<ProjectCollection>(selectedProjects.Select(x => x.Collection).Distinct());
             server.ProjectCollections.ForEach(pc => pc.Projects = new List<ProjectInfo>(selectedProjects.Where(pi => pi.Collection == pc)));
             TFSVersionControlService.Instance.RaiseServersChange();
             TFSVersionControlService.Instance.StorePrefs();
         }
     }
 }
 void OnAddServer(object sender, EventArgs e)
 {
     using (var dialog = new AddServerDialog())
     {
         if (dialog.Run(this) == Command.Ok && dialog.ServerInfo != null)
         {
             if (TFSVersionControlService.Instance.HasServer(dialog.ServerInfo.Name))
             {
                 MessageService.ShowError("Server with same name already exists!");
                 return;
             }
             using (var credentialsDialog = new CredentialsDialog(dialog.ServerType))
             {
                 if (credentialsDialog.Run(this) == Command.Ok && credentialsDialog.Authentication != null)
                 {
                     CredentialsManager.StoreCredential(dialog.ServerInfo.Uri, credentialsDialog.Authentication.Password);
                     var password = CredentialsManager.GetPassword(dialog.ServerInfo.Uri); //Try Get Password
                     bool isPasswordSavedInXml = false;
                     if (password == null)
                     {
                         MessageService.ShowWarning("No keyring service found!\nPassword will be saved as plain text.");
                         isPasswordSavedInXml = true;
                     }
                     var server = TeamFoundationServerFactory.Create(dialog.ServerType, dialog.ServerInfo, 
                                                                     credentialsDialog.Authentication, isPasswordSavedInXml);
                     using (var projectsDialog = new ChooseProjectsDialog(server))
                     {
                         if (projectsDialog.Run(this) == Command.Ok && projectsDialog.SelectedProjects.Any())
                         {
                             var selectedProjects = projectsDialog.SelectedProjects;
                             server.ProjectCollections = new List<ProjectCollection>(selectedProjects.Select(x => x.Collection).Distinct());
                             server.ProjectCollections.ForEach(pc => pc.Projects = new List<ProjectInfo>(selectedProjects.Where(pi => pi.Collection == pc)));
                             TFSVersionControlService.Instance.AddServer(server);
                             UpdateServersList();
                         }
                     }
                 }
             }
         }
     }
 }