public void SetExtensionSettings()
        {
            CCTrayProject newValue = new CCTrayProject();

            newValue.ExtensionSettings = "Some settings";
            Assert.AreEqual("Some settings", newValue.ExtensionSettings);
        }
Beispiel #2
0
 // CCNET-1179: Include the configuration in the arguments.
 public ProjectMonitor(CCTrayProject configuration, ICruiseProjectManager cruiseProjectManager, ISingleServerMonitor serverMonitor, DateTimeProvider dateTimeProvider)
 {
     buildDurationTracker      = new BuildDurationTracker(dateTimeProvider);
     this.cruiseProjectManager = cruiseProjectManager;
     this.serverMonitor        = serverMonitor;
     this._configuration       = configuration;
 }
        public ICruiseProjectManager Create(CCTrayProject project, IDictionary <BuildServer, ICruiseServerManager> serverManagers)
        {
            BuildServer server = project.BuildServer;

            switch (server.Transport)
            {
            case BuildServerTransport.Remoting:
            {
                var client = GenerateRemotingClient(server);
                return(new RemotingCruiseProjectManager(client, project.ProjectName));
            }

            case BuildServerTransport.Extension:
                ITransportExtension extensionInstance = ExtensionHelpers.RetrieveExtension(server.ExtensionName);
                extensionInstance.Settings      = server.ExtensionSettings;
                extensionInstance.Configuration = server;
                return(extensionInstance.RetrieveProjectManager(project.ProjectName));

            default:
            {
                var client = GenerateHttpClient(server);
                return(new HttpCruiseProjectManager(client, project.ProjectName, serverManagers[server]));
            }
            }
        }
 public ProjectConfigurationListViewItemAdaptor(CCTrayProject project)
 {
     this.project = project;
     item         = new ListViewItem(new string[] { project.BuildServer.DisplayName, project.BuildServer.Transport.ToString(), project.ProjectName });
     item.Checked = project.ShowProject;
     item.Tag     = this;
 }
        public void SetExtensionNameBlank()
        {
            CCTrayProject newValue = new CCTrayProject();

            newValue.ExtensionName = string.Empty;
            Assert.AreEqual(string.Empty, newValue.ExtensionName);
            Assert.AreEqual(BuildServerTransport.HTTP, newValue.BuildServer.Transport);
        }
        public void SetExtensionNameNonBlank()
        {
            CCTrayProject newValue = new CCTrayProject();

            newValue.ExtensionName = "An extension";
            Assert.AreEqual("An extension", newValue.ExtensionName);
            Assert.AreEqual(BuildServerTransport.Extension, newValue.BuildServer.Transport);
        }
        /// <summary>
        /// Update the projects configuration.
        /// </summary>
        public void UpdateProjectList()
        {
            mainForm.ReloadConfiguration(() =>
            {
                var form = new DisplayChangedProjects(changeList);
                form.UpdateConfiguration += (servers) =>
                {
                    // Update each server
                    var projects = new List <CCTrayProject>(configuration.Projects);
                    foreach (var server in servers)
                    {
                        // Generate each project and add it to the configuration
                        foreach (var newProject in server.AddedProjects)
                        {
                            var projectConfig = new CCTrayProject
                            {
                                BuildServer = server.Configuration,
                                ProjectName = newProject,
                                ShowProject = true
                            };
                            projects.Add(projectConfig);
                        }

                        // Remove the old projects
                        foreach (var oldProject in server.DeletedProjects)
                        {
                            // Try to find the project
                            CCTrayProject actualProject = null;
                            foreach (var project in projects)
                            {
                                if (project.BuildServer.Equals(server.Configuration) &&
                                    project.ProjectName.Equals(oldProject))
                                {
                                    actualProject = project;
                                    break;
                                }
                            }

                            // If the project is found, it can be removed
                            if (actualProject != null)
                            {
                                projects.Remove(actualProject);
                            }
                        }
                    }
                    var newConfig      = configuration.Clone();
                    newConfig.Projects = projects.ToArray();

                    // Save the configuration and reload
                    newConfig.Persist();
                    mainForm.CloseUpdatePanel();
                };

                var result = form.ShowDialog(mainForm);
                return(result == DialogResult.OK);
            });
        }
 private bool IsProjectAlreadyAdded(CCTrayProject project)
 {
     foreach (CCTrayProject currentProject in currentProjectList)
     {
         if (project.ServerUrl == currentProject.ServerUrl && project.ProjectName == currentProject.ProjectName)
         {
             return(true);
         }
     }
     return(false);
 }
        private CCTrayProject[] BuildProjectListFromListView()
        {
            CCTrayProject[] newProjectList = new CCTrayProject[lvProjects.Items.Count];

            for (int i = 0; i < lvProjects.Items.Count; i++)
            {
                ProjectConfigurationListViewItemAdaptor adaptor = (ProjectConfigurationListViewItemAdaptor)lvProjects.Items[i].Tag;
                newProjectList[i] = adaptor.Project;
            }
            return(newProjectList);
        }
        /// <summary>
        /// Gets the list of projects.
        /// </summary>
        /// <returns>The available projects on the server.</returns>
        public CCTrayProject[] GetProjectList()
        {
            ProjectStatus[] statuses = manager.GetProjectStatus();
            CCTrayProject[] projects = new CCTrayProject[statuses.Length];

            for (int i = 0; i < statuses.Length; i++)
            {
                ProjectStatus status = statuses[i];
                projects[i] = new CCTrayProject(this.configuration, status.Name);
            }

            return(projects);
        }
Beispiel #11
0
 // CCNET-1179: Include the configuration in the arguments.
 public ProjectMonitor(CCTrayProject configuration, ICruiseProjectManager cruiseProjectManager, ISingleServerMonitor serverMonitor)
     : this(configuration, cruiseProjectManager, serverMonitor, new DateTimeProvider())
 {
 }