ServiceClientGenerator.ProjectFileCreator.GenerateCoreCLRProjectFiles C# (CSharp) Method

GenerateCoreCLRProjectFiles() private method

private GenerateCoreCLRProjectFiles ( string serviceFilesRoot, ServiceConfiguration serviceConfiguration, string assemblyName ) : void
serviceFilesRoot string
serviceConfiguration ServiceConfiguration
assemblyName string
return void
        private void GenerateCoreCLRProjectFiles(string serviceFilesRoot, ServiceConfiguration serviceConfiguration, string assemblyName)
        {
            var projectFilename = string.Concat(assemblyName, ".CoreCLR.xproj");
            string projectGuid;
            if (File.Exists(Path.Combine(serviceFilesRoot, projectFilename)))
            {
                Console.WriteLine("...updating existing project file {0}", projectFilename);
                var projectPath = Path.Combine(serviceFilesRoot, projectFilename);
                projectGuid = Utils.GetProjectGuid(projectPath);
            }
            else
            {
                projectGuid = Utils.NewProjectGuid;
                Console.WriteLine("...creating project file {0}", projectFilename);
            }


            {
                var templateSession = new Dictionary<string, object>();
                templateSession["RootNamespace"] = serviceConfiguration.Namespace;
                templateSession["AssemblyName"] = assemblyName;
                templateSession["ProjectGuid"] = projectGuid;

                CoreCLRProjectFile projectFileTemplate = new CoreCLRProjectFile();
                projectFileTemplate.Session = templateSession;
                var content = projectFileTemplate.TransformText();

                GeneratorDriver.WriteFile(serviceFilesRoot, string.Empty, projectFilename, content);
            }

            {
                var templateSession = new Dictionary<string, object>();

                var dependencies = new List<string>();
                foreach (var dependency in serviceConfiguration.ServiceDependencies.Keys)
                {
                    if (string.Equals(dependency, "Core", StringComparison.InvariantCultureIgnoreCase))
                        continue;

                    dependencies.Add(dependency);
                }

                templateSession["ServiceDependencies"] = dependencies;
                templateSession["AssemblyName"] = assemblyName;

                var projectJsonTemplate = new CoreCLRProjectJson();
                projectJsonTemplate.Session = templateSession;

                var content = projectJsonTemplate.TransformText();

                GeneratorDriver.WriteFile(serviceFilesRoot, string.Empty, "project.json", content);
            }

        }