private void LoadXmlIfNeeded() { if (_environmentInfosXml != null) { return; } var xmlSerializer = new XmlSerializer(typeof(EnvironmentInfosXml)); using (var fs = File.OpenRead(_xmlFilePath)) { _environmentInfosXml = (EnvironmentInfosXml)xmlSerializer.Deserialize(fs); } _environmentInfosByName = _environmentInfosXml.EnvironmentInfos .Select( eiXml => new EnvironmentInfo( eiXml.Name, eiXml.ConfigurationTemplateName, eiXml.AppServerMachineName, eiXml.FailoverClusterMachineName, eiXml.WebServerMachineNames, eiXml.TerminalServerMachineName, eiXml.DatabaseServerMachineName, eiXml.NtServicesBaseDirPath, eiXml.WebAppsBaseDirPath, eiXml.SchedulerAppsBaseDirPath, eiXml.TerminalAppsBaseDirPath, eiXml.EnableFailoverClusteringForNtServices, eiXml.EnvironmentUsers.Select( eu => new EnvironmentUser( eu.Id, eu.UserName)), eiXml.ProjectToFailoverClusterGroupMappings.Select( ptfcgm => new ProjectToFailoverClusterGroupMapping( ptfcgm.ProjectName, ptfcgm.ClusterGroupName)))) .ToDictionary(ei => ei.Name); }
private void LoadXmlIfNeeded() { if (_environmentInfosXml != null) { return; } var xmlSerializer = new XmlSerializer(typeof(EnvironmentInfosXml)); using (var fs = File.OpenRead(_xmlFilePath)) { _environmentInfosXml = (EnvironmentInfosXml)xmlSerializer.Deserialize(fs); } _environmentInfosByName = _environmentInfosXml.EnvironmentInfos .Select( eiXml => new EnvironmentInfo( eiXml.Name, eiXml.ConfigurationTemplateName, eiXml.AppServerMachineName, eiXml.FailoverClusterMachineName, eiXml.WebServerMachineNames, eiXml.TerminalServerMachineName, eiXml.SchedulerServerTasksMachineNames, eiXml.SchedulerServerBinariesMachineNames, eiXml.NtServicesBaseDirPath, eiXml.WebAppsBaseDirPath, eiXml.SchedulerAppsBaseDirPath, eiXml.TerminalAppsBaseDirPath, eiXml.EnableFailoverClusteringForNtServices, eiXml.EnvironmentUsers.Select( e => new EnvironmentUser( e.Id, e.UserName)), eiXml.AppPoolInfos.Select( e => new IisAppPoolInfo( e.Name, e.Version, e.Mode)), eiXml.DatabaseServers.Select( e => new DatabaseServer( e.Id, e.MachineName)), eiXml.WebAppProjectConfigurations.Select( e => new WebAppProjectConfiguration( e.ProjectName, e.AppPoolId, e.WebSiteName, e.WebAppDirName, e.WebAppName)), eiXml.ProjectToFailoverClusterGroupMappings.Select( e => new ProjectToFailoverClusterGroupMapping( e.ProjectName, e.ClusterGroupName)), eiXml.DbProjectConfigurations.Select( e => new DbProjectConfiguration( e.ProjectName, e.DatabaseServerId)), eiXml.TerminalAppsShortcutFolder, eiXml.ManualDeploymentPackageDirPath )) .ToDictionary(ei => ei.Name); }