CCNet.Build.SetupPackages.ReferencesHelper.SetupRelatedProject C# (CSharp) Method

SetupRelatedProject() private method

private SetupRelatedProject ( ProjectReference reference ) : void
reference CCNet.Build.Common.ProjectReference
return void
		private void SetupRelatedProject(ProjectReference reference)
		{
			var fileName = Path.GetFileName(reference.Include);
			var folderName = Path.GetFileName(Path.GetDirectoryName(reference.Include));
			var referenceName = reference.Name;

			Console.WriteLine($"Resolving related project '{fileName}'...");

			if (String.IsNullOrEmpty(referenceName))
			{
				referenceName = folderName;

				// quick dirty hardcode below for resolving names
				if (referenceName.StartsWith("Metro.")
					|| referenceName.StartsWith("FlexQueue."))
				{
					referenceName = "CnetContent." + folderName;
				}
			}

			// quick dirty hardcode below with calling tools with specific paths and arguments

			var versionBlob = $"{referenceName}/version.txt";
			var versionLocal = $@"{Args.RelatedPath}\{folderName}.txt";

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				$@"Storage=Devbuild Container=build ""BlobFile={versionBlob}"" ""LocalFile={versionLocal}""");

			var version = File.ReadAllText(versionLocal);

			var sourceBlob = $"{referenceName}/{version}/source.zip";
			var sourceLocal = $@"{Args.RelatedPath}\{folderName}.source.zip";

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				$@"Storage=Devbuild Container=snapshot ""BlobFile={sourceBlob}"" ""LocalFile={sourceLocal}""");

			var packagesBlob = $"{referenceName}/{version}/packages.zip";
			var packagesLocal = $@"{Args.RelatedPath}\{folderName}.packages.zip";

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				$@"Storage=Devbuild Container=snapshot ""BlobFile={packagesBlob}"" ""LocalFile={packagesLocal}""");

			var sourceFolder = $@"{Args.RelatedPath}\{folderName}";
			Execute.Run(@"C:\Program Files\7-Zip\7z.exe", $@"x ""-o{sourceFolder}"" ""{sourceLocal}""");

			var packagesFolder = $@"{Args.RelatedPath}\packages";
			Execute.Run(@"C:\Program Files\7-Zip\7z.exe", $@"x ""-o{packagesFolder}"" ""{packagesLocal}""");

			// update project location and report as referenced package

			var includePath = Path.Combine(Args.RelatedPath, folderName, fileName);
			reference.UpdateLocation(includePath);

			m_log.Add(
				referenceName,
				new LogPackage
				{
					PackageId = referenceName,
					ProjectName = referenceName,
					ProjectUrl = $"http://rufc-devbuild.cneu.cnwk/ccnet/server/Azure/project/{referenceName}/ViewProjectReport.aspx",
					IsLocal = true,
					SourceVersion = null,
					BuildVersion = new Version(version),
					ProjectReference = true
				});
		}
	}