private void UpdateChutzpahEnvironmentForProject(string projectPath)
        {
            var buildProject = ProjectCollection.GlobalProjectCollection.LoadedProjects
                               .FirstOrDefault(x => x.FullPath.Equals(projectPath, StringComparison.OrdinalIgnoreCase));

            var chutzpahEnvProps = new Collection <ChutzpahSettingsFileEnvironmentProperty>();

            if (buildProject != null)
            {
                var dirPath = Path.GetDirectoryName(projectPath);
                foreach (var prop in ChutzpahMsBuildProps.GetProps())
                {
                    chutzpahEnvProps.Add(new ChutzpahSettingsFileEnvironmentProperty(prop, buildProject.GetPropertyValue(prop)));
                }

                lock (sync)
                {
                    var envProps = settingsMapper.Settings.ChutzpahSettingsFileEnvironments
                                   .FirstOrDefault(x => x.Path.TrimEnd('/', '\\').Equals(dirPath, StringComparison.OrdinalIgnoreCase));
                    if (envProps == null)
                    {
                        envProps = new ChutzpahSettingsFileEnvironment(dirPath);

                        settingsMapper.Settings.ChutzpahSettingsFileEnvironments.Add(envProps);
                    }

                    envProps.Properties = chutzpahEnvProps;
                }
            }
        }
Пример #2
0
        private void InitializeSettingsFileEnvironments()
        {
            var newEnvironments = new ChutzpahSettingsFileEnvironments();
            var buildProjects   = ProjectCollection.GlobalProjectCollection.LoadedProjects
                                  .Where(x => !x.FullPath.Equals(".user", StringComparison.OrdinalIgnoreCase));

            foreach (var buildProject in buildProjects)
            {
                var dirPath     = buildProject.DirectoryPath;
                var environment = new ChutzpahSettingsFileEnvironment(dirPath);
                foreach (var prop in ChutzpahMsBuildProps.GetProps())
                {
                    var value = buildProject.GetPropertyValue(prop);
                    if (!string.IsNullOrEmpty(value))
                    {
                        environment.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty(prop, value));
                    }
                }

                if (environment.Properties.Any())
                {
                    newEnvironments.AddEnvironment(environment);
                }
            }

            settingsEnvironments = newEnvironments;
        }