using System.IO; using System.Linq; namespace Centron.Scripts { public static class CentronPaths { public static string SlnDirectory { get { var currentFolder = new DirectoryInfo(Path.GetDirectoryName(typeof(CentronPaths).Assembly.Location)); return currentFolder.Parent.Parent.Parent.Parent.Parent.FullName; } } public static string SlnPath => Path.Combine(SlnDirectory, "Centron.sln"); public static string ArtifactsDirectory => Path.Combine(SlnDirectory, "artifacts"); public static string NugetArtifactsDirectory => Path.Combine(ArtifactsDirectory, "nuget"); public static string DotNetToolsDirectory => Path.Combine(SlnDirectory, "dotnettools"); public static string DirectoryBuildProps => Path.Combine(SlnDirectory, "Directory.Build.props"); public static string[] ProjectDirectories => new[] { Path.Combine(SlnDirectory, "deployment", "centron", "CentronSetupProject"), Path.Combine(SlnDirectory, "deployment", "centron", "WebServiceSetupProject"), Path.Combine(SlnDirectory, "src", "apis", "Centron.Api.EbInterface"), Path.Combine(SlnDirectory, "src", "apis", "Centron.Api.Gls"), Path.Combine(SlnDirectory, "src", "apis", "Centron.APIs.CopDataAccess"), Path.Combine(SlnDirectory, "src", "apis", "Centron.APIs.EgisDataAccess"), Path.Combine(SlnDirectory, "src", "apis", "Centron.APIs.IcecatDataAccess"), Path.Combine(SlnDirectory, "src", "apis", "Centron.APIs.ITscopeDataAccess"), Path.Combine(SlnDirectory, "src", "backend", "Centron.BL"), Path.Combine(SlnDirectory, "src", "backend", "Centron.Common"), Path.Combine(SlnDirectory, "src", "backend", "Centron.DAO"), Path.Combine(SlnDirectory, "src", "backend", "Centron.Entities"), Path.Combine(SlnDirectory, "src", "backend", "Centron.Gateway"), Path.Combine(SlnDirectory, "src", "backend", "Centron.Interfaces"), Path.Combine(SlnDirectory, "src", "centron", "Centron.WPF.UI"), Path.Combine(SlnDirectory, "src", "centron", "Centron.WPF.UI.Extension"), Path.Combine(SlnDirectory, "src", "shared", "Centron.Controls"), Path.Combine(SlnDirectory, "src", "shared", "Centron.Controls.Preview"), Path.Combine(SlnDirectory, "src", "shared", "Centron.Core"), Path.Combine(SlnDirectory, "src", "webservice", "Centron.Host"), Path.Combine(SlnDirectory, "src", "webservice", "Centron.Host.Console"), Path.Combine(SlnDirectory, "src", "webservice", "Centron.Host.WindowsService"), Path.Combine(SlnDirectory, "src", "webservice", "c-entron.misc.ConnectionManager"), Path.Combine(SlnDirectory, "src", "webservice", "Centron.WebServices.Core"), Path.Combine(SlnDirectory, "tests", "apis", "Centron.APIs.CopDatabase.Tests"), Path.Combine(SlnDirectory, "tests", "apis", "Centron.APIs.EgisDataAccess.Tests"), Path.Combine(SlnDirectory, "tests", "apis", "Centron.APIs.IcecatDataAccess.Tests"), Path.Combine(SlnDirectory, "tests", "apis", "Centron.APIs.ITscopeDataAccess.Tests"), Path.Combine(SlnDirectory, "tests", "Centron.Tests.EndToEnd"), }; public static string[] BinAndObjDirectories => new[] { ProjectDirectories.Select(f => Path.Combine(f, "bin")), ProjectDirectories.Select(f => Path.Combine(f, "obj")), }.SelectMany(f => f).ToArray(); public static class WebService { public static class ConnectionManager { public static string ProjectDirectory => Path.Combine(SlnDirectory, "src", "webservice", "c-entron.misc.ConnectionManager"); public static string CsProj => Path.Combine(ProjectDirectory, "c-entron.misc.ConnectionManager.csproj"); public static string PublishDirectory => Path.Combine(ProjectDirectory, "bin", "Release", "net10.0-windows", "win-x64", "publish"); } public static string ProjectDirectory => Path.Combine(SlnDirectory, "src", "webservice", "Centron.Host.WindowsService"); public static string CsProj => Path.Combine(ProjectDirectory, "Centron.Host.WindowsService.csproj"); public static string PublishDirectory => Path.Combine(ProjectDirectory, "bin", "Release", "net10.0-windows", "win-x64", "publish"); public static string PublishedDeDirectory => Path.Combine(PublishDirectory, "de"); public static string PublishedEnDirectory => Path.Combine(PublishDirectory, "en"); public static string PublishedDevelopmentDirectory => Path.Combine(PublishDirectory, "development"); public static string PublishedConnectionManagerDirectory => Path.Combine(PublishDirectory, "ConnectionManager"); public static string PublishedConnectionManagerDeDirectory => Path.Combine(PublishedConnectionManagerDirectory, "de"); public static string PublishedConnectionManagerEnDirectory => Path.Combine(PublishedConnectionManagerDirectory, "en"); public static string PublishedWindowsServiceExe => Path.Combine(PublishDirectory, "Centron.Host.WindowsService.exe"); public static string PublishedWindowsServiceDll => Path.Combine(PublishDirectory, "Centron.Host.WindowsService.dll"); public static string PublishedConnectionManagerExe => Path.Combine(PublishedConnectionManagerDirectory, "c-entron Connection Manager.exe"); public static string PublishedConnectionManagerDll => Path.Combine(PublishedConnectionManagerDirectory, "c-entron Connection Manager.dll"); public static string PublishedCentronInterfacesDll => Path.Combine(PublishDirectory, "Centron.Interfaces.dll"); public static string PublishedCentronWebServicesCoreDll => Path.Combine(PublishDirectory, "Centron.WebServices.Core.dll"); public static string PublishedCentronCoreDll => Path.Combine(PublishDirectory, "Centron.Core.dll"); } public static class WebServiceInstaller { public static string DeploymentDirectory => Path.Combine(SlnDirectory, "deployment", "centron"); public static string WixProjDirectory => Path.Combine(DeploymentDirectory, "WebServiceSetupProject"); public static string WixProj => Path.Combine(WixProjDirectory, "WebServiceSetupProject.wixproj"); public static string InstallerInputDirectory => Path.Combine(WixProjDirectory, "Files"); public static string PublishDirectory => Path.Combine(WixProjDirectory, "bin", "Release"); public static string ArtifactsFile => Path.Combine(ArtifactsDirectory, "c-entron Web-Service Installer.zip"); public static string PublishedInstallerMsi => Path.Combine(PublishDirectory, "c-entron Web-Service Installer.msi"); public static string ProductHeat => Path.Combine(WixProjDirectory, "WebServiceProductHeat.wxs"); } public static class WebServiceLinux { public static string ProjectDirectory => Path.Combine(SlnDirectory, "src", "webservice", "Centron.Host.Console"); public static string CsProj => Path.Combine(ProjectDirectory, "Centron.Host.Console.csproj"); public static string PublishDirectory => Path.Combine(ProjectDirectory, "bin", "Release", "net10.0", "linux-x64", "publish"); public static string PublishedConsoleDll => Path.Combine(PublishDirectory, "Centron.Host.Console.dll"); public static string PublishedCentronHostConsoleConfigFile => Path.Combine(PublishDirectory, "Centron.Host.Console.dll.config"); public static string ArtifactsFile => Path.Combine(ArtifactsDirectory, "c-entron Web-Service Linux.zip"); public static string DebugSimpleWebServiceConfigPath => Path.Combine(ProjectDirectory, "bin", "Debug", "net10.0", "SimpleWebServiceConfig.txt"); } public static class CentronNet { public static string ProjectDirectory => Path.Combine(SlnDirectory, "src", "centron", "Centron.WPF.UI"); public static string CsProj => Path.Combine(ProjectDirectory, "Centron.WPF.UI.csproj"); public static string PublishDirectory => Path.Combine(ProjectDirectory, "bin", "Release", "net10.0-windows", "win-x64", "publish"); public static string PublishedDeDirectory => Path.Combine(PublishDirectory, "de"); public static string PublishedEnDirectory => Path.Combine(PublishDirectory, "en"); public static string PublishedCentronNetExe => Path.Combine(PublishDirectory, "c-entron 2.0.exe"); public static string PublishedCentronNetDll => Path.Combine(PublishDirectory, "c-entron 2.0.dll"); public static string PublishedToolsDirectory => Path.Combine(PublishDirectory, "Tools"); public static string DebugCentronConnectionsPath => Path.Combine(ProjectDirectory, "bin", "Debug", "net10.0-windows", "CentronConnections.xml"); } public static class CentronNetInstaller { public static string WixProjDirectory => Path.Combine(SlnDirectory, "deployment", "centron", "CentronSetupProject"); public static string WixProj => Path.Combine(WixProjDirectory, "CentronSetupProject.wixproj"); public static string InstallerInputDirectory => Path.Combine(WixProjDirectory, "Files"); public static string PublishDirectory => Path.Combine(WixProjDirectory, "bin", "Release"); public static string ArtifactsFile => Path.Combine(ArtifactsDirectory, "c-entron.NET Installer.zip"); public static string PublishedInstallerMsi => Path.Combine(PublishDirectory, "c-entron.NET Installer.msi"); public static string ProductHeat => Path.Combine(WixProjDirectory, "CentronProductHeat.wxs"); } public static class CentronInterfaces { public static string ProjectName => "Centron.Interfaces"; public static string CsProj => Path.Combine(SlnDirectory, "src", "backend", ProjectName, $"{ProjectName}.csproj"); public static string PublishDirectory => Path.Combine(Path.GetDirectoryName(CsProj), "bin", "Release"); } public static class CentronWebServicesCore { public static string ProjectName => "Centron.WebServices.Core"; public static string CsProj => Path.Combine(SlnDirectory, "src", "webservice", ProjectName, $"{ProjectName}.csproj"); public static string PublishDirectory => Path.Combine(Path.GetDirectoryName(CsProj), "bin", "Release"); } public static class CentronCore { public static string ProjectName => "Centron.Core"; public static string CsProj => Path.Combine(SlnDirectory, "src", "shared", ProjectName, $"{ProjectName}.csproj"); public static string PublishDirectory => Path.Combine(Path.GetDirectoryName(CsProj), "bin", "Release"); } public static class CentronControls { public static string CsProj => Path.Combine(SlnDirectory, "src", "shared", "Centron.Controls", "Centron.Controls.csproj"); public static string PublishDirectory => Path.Combine(Path.GetDirectoryName(CsProj), "bin", "Release"); } public static class EndToEndTests { public static string CsProj => Path.Combine(SlnDirectory, "tests", "Centron.Tests.EndToEnd", "Centron.Tests.EndToEnd.csproj"); public static string ArtifactsDirectory => Path.Combine(CentronPaths.ArtifactsDirectory, "EndToEndTests"); public static string ArtifactsFileName => "TestResults.trx"; } public static class DependencyGraph { public static string CentronWebServiceArtifactsFile => Path.Combine(ArtifactsDirectory, "c-entron Web-Service Dependencies.txt"); public static string CentronNetArtifactsFile => Path.Combine(ArtifactsDirectory, "c-entron.NET Dependencies.txt"); } } }