public void Should_create_file_from_diagnostic_from_path()
 {
     var runner = new T4TemplateRunner();
      var relativePath = "..\\DiagnosticsGenerationMetadata";
      var dict = runner.CreateOutputStringsFromProject(relativePath, "..\\Output");
      Assert.AreEqual(1, dict.Count());
      var actual = dict.First().Value;
      actual = StringUtilities.RemoveFileHeaderComments(actual);
      Assert.AreEqual(expected, actual);
 }
        public void Should_create_file_from_semantic_log_from_path()
        {
            var runner       = new T4TemplateRunner();
            var relativePath = "..\\SemanticLogGenerationMetadata";
            var dict         = runner.CreateOutputStringsFromProject(relativePath, "..\\Output");

            Assert.AreEqual(1, dict.Count());
            var actual = dict.First().Value;

            actual = StringUtilities.RemoveFileHeaderComments(actual);
            Assert.AreEqual(expected, actual);
        }
        public void Should_create_file_from_semantic_log_from_project()
        {
            var runner         = new T4TemplateRunner();
            var startDirectory = Path.Combine(FileSupport.ProjectPath(AppDomain.CurrentDomain.BaseDirectory), "..\\SemanticLogGenerationMetadata");

            startDirectory = Path.GetFullPath(startDirectory);
            var ws          = MSBuildWorkspace.Create();
            var projectPath = FileSupport.GetNearestCSharpProject(startDirectory);
            // For now: wait for the result
            var project = ws.OpenProjectAsync(projectPath).Result;
            var dict    = runner.CreateOutputStringsFromProject(project, "..\\Output");

            Assert.AreEqual(1, dict.Count());
            var actual = dict.First().Value;

            actual = StringUtilities.RemoveFileHeaderComments(actual);
            Assert.AreEqual(expected, actual);
        }
 public void Should_create_domain_file_from_project()
 {
     var runner = new T4TemplateRunner();
      var startDirectory = Path.Combine(FileSupport.ProjectPath(AppDomain.CurrentDomain.BaseDirectory), "..\\DomainGenerationMetadata");
      startDirectory = Path.GetFullPath(startDirectory);
      var ws = MSBuildWorkspace.Create();
      var projectPath = FileSupport.GetNearestCSharpProject(startDirectory);
      // For now: wait for the result
      var project = ws.OpenProjectAsync(projectPath).Result;
      var dict = runner.CreateOutputStringsFromProject(project, "..\\Output");
      AssertCreation(dict);
 }
 public void Should_create_domain_file_from_path()
 {
     var runner = new T4TemplateRunner();
      var relativePath = "..\\DomainGenerationMetadata";
      var dict = runner.CreateOutputStringsFromProject(relativePath, "..\\Output");
      AssertCreation(dict);
 }
        static void Main(string[] args)
        {
            var provider       = new ServiceProvider();
            var runner         = new T4TemplateRunner(provider);
            var startDirectory = Path.Combine(FileSupport.ProjectPath(AppDomain.CurrentDomain.BaseDirectory), "..\\DiagnosticsGeneration\\DiagnosticsGenerationMetadata");

            startDirectory = Path.GetFullPath(startDirectory);
            var ws          = MSBuildWorkspace.Create();
            var projectPath = FileSupport.GetNearestCSharpProject(startDirectory);
            // For now: wait for the result
            var project = ws.OpenProjectAsync(projectPath).Result;
            var dict    = runner.CreateOutputStringsFromProject(project, "..\\Output");

            foreach (var pair in dict)
            {
                File.WriteAllText(pair.Key, pair.Value);
            }

            //string[] outFiles;
            //var templateMaps = new List<TemplateMap>();
            //var provider = new Provider();
            //var entryPoints = provider.GetServices<ICodeFirstEntry>();

            //foreach (var entryPoint in entryPoints)
            //{
            //   var metadataLoader = provider.GetService<IMetadataLoader>(x=>x.ReturnType == entryPoint.GetType());
            //   templateMaps.Add(entryPoint.AttributeId, new CodeFirstMetadataLoader<CodeFirstDiagnosticGroup>(),
            //    new T4TemplateRunner(),
            //    new DiagnosticTemplate(),
            //    metadataDirectory: @"DiagnosticsGeneration\DiagnosticsGenerationMetadata",
            //    inputExtension: ".cs"))
            //}



            //templateMaps.Add(new TemplateMap<CodeFirstSemanticLogGroup, EventSourceTemplate>
            //   ("SemanticLog",
            //    new CodeFirstMetadataLoader<CodeFirstSemanticLogGroup>(),
            //    new T4TemplateRunner(),
            //    new EventSourceTemplate()));

            //templateMaps.Add(new TemplateMap<CodeFirstClassGroup, PropertyChangedTemplate>
            //   ("NotifyPropertyChanged",
            //    new CodeFirstMetadataLoader<CodeFirstClassGroup>(),
            //    new T4TemplateRunner(),
            //    new PropertyChangedTemplate()));

            //templateMaps.Add(new TemplateMap<CodeFirstDiagnosticGroup, DiagnosticTemplate>
            //   ("DiagnosticAndCodeFix",
            //    new CodeFirstMetadataLoader<CodeFirstDiagnosticGroup>(),
            //    new T4TemplateRunner(),
            //    new DiagnosticTemplate(),
            //    metadataDirectory: @"DiagnosticsGeneration\DiagnosticsGenerationMetadata",
            //    inputExtension: ".cs"));

            //templateMaps.Add(new TemplateMap<CodeFirstDiagnosticGroup, DiagnosticTemplate>
            //   (
            //    new CodeFirstMetadataLoader<CodeFirstDiagnosticGroup>(),
            //    new T4TemplateRunner(),
            //    new DiagnosticTemplate(),
            //    metadataDirectory: @"DiagnosticsGeneration\DiagnosticsGenerationMetadata",
            //    inputExtension: ".cs"));

            //var startDirectory = FileSupport.ProjectPath(AppDomain.CurrentDomain.BaseDirectory);
            //var ws = MSBuildWorkspace.Create();
            //foreach (var templateMap in templateMaps)
            //{
            //   var sourceDirectory = Path.Combine(startDirectory, "..");
            //   var sources = templateMap.GetFileNames(sourceDirectory);
            //   var firstSource = sources.FirstOrDefault();
            //   if (firstSource != null)
            //   {
            //      var projectPath = FileSupport.GetNearestCSharpProject(firstSource);
            //      // For now: wait for the result
            //      var project = ws.OpenProjectAsync(projectPath).Result;
            //      var rootGroup = RDom.CSharp.LoadGroup(project);
            //      var output = templateMap.OutputToFiles(out outFiles, rootGroup, sources.ToArray());
            //   }
            //}

            Console.Write("You're done. Adjacent to your generated file (temp location) you'll find a generated file to include in your project");
            Console.Read();
        }
 public void Should_create_file_from_diagnostic_from_project()
 {
     var runner = new T4TemplateRunner();
      var startDirectory = Path.Combine(FileSupport.ProjectPath(AppDomain.CurrentDomain.BaseDirectory), "..\\DiagnosticsGenerationMetadata");
      startDirectory = Path.GetFullPath(startDirectory);
      var ws = MSBuildWorkspace.Create();
      var projectPath = FileSupport.GetNearestCSharpProject(startDirectory);
      // For now: wait for the result
      var project = ws.OpenProjectAsync(projectPath).Result;
      var dict = runner.CreateOutputStringsFromProject(project, "..\\Output");
      Assert.AreEqual(1, dict.Count());
      var actual = dict.First().Value;
      actual = StringUtilities.RemoveFileHeaderComments(actual);
      Assert.AreEqual(expected, actual);
 }