AvalonStudio.Toolchains.Standard.StandardToolChain.CleanAll C# (CSharp) Method

CleanAll() private method

private CleanAll ( IConsole console, IStandardProject superProject, IStandardProject project ) : Task
console IConsole
superProject IStandardProject
project IStandardProject
return Task
		private async Task CleanAll(IConsole console, IStandardProject superProject, IStandardProject project)
		{
			foreach (var reference in project.References)
			{
				var loadedReference = reference as IStandardProject;

				if (loadedReference != null)
				{
					if (loadedReference.Type == ProjectType.Executable)
					{
						await CleanAll(console, loadedReference, loadedReference);
					}
					else
					{
						await CleanAll(console, superProject, loadedReference);
					}
				}
			}

			var outputDirectory = project.GetObjectDirectory(superProject);

			var hasCleaned = false;

			if (Directory.Exists(outputDirectory))
			{
				hasCleaned = true;

				try
				{
					Directory.Delete(outputDirectory, true);
				}
				catch (Exception)
				{
				}
			}

			outputDirectory = project.GetOutputDirectory(superProject);

			if (Directory.Exists(outputDirectory))
			{
				hasCleaned = true;

				try
				{
					Directory.Delete(outputDirectory, true);
				}
				catch (Exception)
				{
				}
			}

			if (hasCleaned)
			{
				console.WriteLine(string.Format("[BB] - Cleaning Project - {0}", project.Name));
			}
		}