/// <summary>
/// Runs the command
/// </summary>
/// <param name="suite">The current suite model the command is applied to</param>
/// <param name="parameters">Parameters given to the command (in unprocessed form)</param>
public bool Run(Suite suite, string[] parameters)
{
var cleanParams = new CleanParameters(new string[0]);
var cleanParameters = parameters.Where(p => cleanParams.IsKeepReferencesParameter(p) || cleanParams.IsSoftCleanParameter(p)).ToArray();
var buildParameters = parameters.Where(p => !cleanParams.IsKeepReferencesParameter(p) && !cleanParams.IsSoftCleanParameter(p)).ToArray();
var cleanSucceeded = cleanCommand.Run(suite, cleanParameters);
targetRoot.Remake();
cacheRoot.Value.Remake();
var buildSucceeded = buildCommand.Run(suite, buildParameters);
return cleanSucceeded && buildSucceeded;
}