39 lines
1.8 KiB
C#
Executable File
39 lines
1.8 KiB
C#
Executable File
using ThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation;
|
|
using ThoughtWorks.CruiseControl.WebDashboard.IO;
|
|
using ThoughtWorks.CruiseControl.WebDashboard.MVC;
|
|
using ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise;
|
|
using ThoughtWorks.CruiseControl.WebDashboard.ServerConnection;
|
|
|
|
namespace ThoughtWorks.CruiseControl.WebDashboard.Plugins.DeleteProject
|
|
{
|
|
public class DoDeleteProjectAction : ICruiseAction
|
|
{
|
|
public static readonly string ACTION_NAME = "DoDeleteProject";
|
|
|
|
private readonly IFarmService farmService;
|
|
private readonly IDeleteProjectViewBuilder viewBuilder;
|
|
|
|
public DoDeleteProjectAction(IDeleteProjectViewBuilder viewBuilder, IFarmService farmService)
|
|
{
|
|
this.viewBuilder = viewBuilder;
|
|
this.farmService = farmService;
|
|
}
|
|
|
|
public IResponse Execute(ICruiseRequest request)
|
|
{
|
|
IProjectSpecifier projectSpecifier = request.ProjectSpecifier;
|
|
bool purgeWorkingDirectory = request.Request.GetChecked("PurgeWorkingDirectory");
|
|
bool purgeArtifactDirectory = request.Request.GetChecked("PurgeArtifactDirectory");
|
|
bool purgeSourceControlEnvironment = request.Request.GetChecked("PurgeSourceControlEnvironment");
|
|
farmService.DeleteProject(projectSpecifier, purgeWorkingDirectory, purgeArtifactDirectory, purgeSourceControlEnvironment);
|
|
return viewBuilder.BuildView(BuildModel(projectSpecifier, purgeWorkingDirectory, purgeArtifactDirectory, purgeSourceControlEnvironment));
|
|
}
|
|
|
|
private DeleteProjectModel BuildModel(IProjectSpecifier projectSpecifier, bool purgeWorkingDirectory, bool purgeArtifactDirectory, bool purgeSourceControlEnvironment)
|
|
{
|
|
return new DeleteProjectModel(projectSpecifier, string.Format("Project Deleted"), false,
|
|
purgeWorkingDirectory, purgeArtifactDirectory, purgeSourceControlEnvironment);
|
|
}
|
|
}
|
|
}
|