public void TestRepositoryImporterCSV() { //ARRANGE IRepositoryImporter repositoryImporter = new RepositoryImporter(new DBContext()); var item = new Item() { PointOfSale = "ERES", Product = "3123F", Date = DateTime.Now, Stock = 2 }; List <Item> items = new List <Item>(); items.Add(item); //ACT repositoryImporter.ImporterFileHelper(items); }
static void RunRepoImporter() { var targetIndexName = AnalysisServices.GetTargetIndexName(repoName); string[] file = new string[0]; bool requireProjectsExist = true; string assembly = null; if (File.Exists(rootDirectory)) { if (rootDirectory.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || rootDirectory.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) { assembly = rootDirectory; } file = new[] { rootDirectory }; rootDirectory = Path.GetDirectoryName(rootDirectory); requireProjectsExist = false; } Directory.CreateDirectory("output"); using (StreamWriter writer = new StreamWriter(@"output\log.txt")) { Logger logger = new MultiLogger( new ConsoleLogger(), new TextLogger(TextWriter.Synchronized(writer))); FileSystem fileSystem = new CachingFileSystem( new UnionFileSystem(file.Union(Enumerable.Repeat(solutionPath, String.IsNullOrEmpty(solutionPath) ? 0 : 1)), new RootFileSystem(rootDirectory, new MultiFileSystemFilter( new DirectoryFileSystemFilter(@"\.", ".sln"), new GitIgnoreFilter(), new BinaryFileSystemFilter(new string[] { ".exe", ".dll", "*.blob", ".db" }) )) { DisableEnumeration = file.Length != 0 })); List <RepoProjectAnalyzer> projectAnalyzers = new List <RepoProjectAnalyzer>() { //new MSBuildSolutionProjectAnalyzer() new BinLogSolutionProjectAnalyzer() { RequireProjectFilesExist = requireProjectsExist } }; if (assembly != null) { fileSystem = new FileSystem(); projectAnalyzers.Clear(); projectAnalyzers.Add(new MetadataAsSourceProjectAnalyzer(file)); } IAnalysisTarget analysisTarget = null; if (analysisOnly) { analysisTarget = new NullAnalysisTarget(); } else { ElasticsearchStorage storage = GetStorage(); logger.WriteLine("Removing repository"); ((IStorage)storage).RemoveRepository(targetIndexName).GetAwaiter().GetResult(); logger.WriteLine("Removed repository"); analysisTarget = storage; } RepositoryImporter importer = new RepositoryImporter(repoName, rootDirectory, new AnalysisServices( targetIndexName, fileSystem, analyzers: new RepoFileAnalyzer[] { new SolutionFileAnalyzer(), new MSBuildFileAnalyzer(), new XmlFileAnalyzer( ".ds", ".xml", ".config", ".settings"), }) //new ExternalRepoFileAnalyzer(new[] { @"d:\temp\Codex" }), // This indexer allows an external tool to write out codex spans for importing. We sill need to add support for a 'marker' file so we don't have to pass a folder. { AnalysisTarget = analysisTarget, Logger = logger, }) { AnalyzerDatas = projectAnalyzers.Select(a => new AnalyzerData() { Analyzer = a }).ToList() }; importer.Import(finalizeImport: finalize).GetAwaiter().GetResult(); } }
private static async Task Main(string[] args) { // 0. Bootstraping Log.Logger = new LoggerConfiguration() .WriteTo.Console() .CreateLogger(); var appConfig = await new AppConfigurationProvider().Get(); var repositoryImportStrategies = new IRepositoryImportStrategy[] { new SvnRepositoryStrategy() }; var buildStrategies = new ISourceCodeBuilderStrategy[] { new DotNetCoreSourceBuilderStrategy() }; var deployStrategies = new IDeployStrategy[] { new InternetInformationServerDeploymentStrategy() }; // 1. Source Repo // 1.1 Type (SVN, GIT) // 1.2 Central Credentials // Moved to settings. // 3. Project Name // Moved to settings. var fetchResult = await RepositoryImporter.ImportAsync(Settings.ProjectName, Settings.SourceRepoUrl, SourceCodeRepositoryType.Svn, appConfig, new SvnAuthInfo(Settings.Username, Settings.Password), new ReadOnlyCollection <IRepositoryImportStrategy>(repositoryImportStrategies)); if (fetchResult.HasErrors) { goto end; } Log.Information(fetchResult.CheckOutDirectory); // 4. Targets to build. var buildTargets = new[] { new BuildTarget("Web", @"Trunk\Nrea.Web", BuildTargetType.DotNetCore), //new BuildTarget("Migration", @"Trunk\Nrea.Migration", BuildTargetType.DotNetCore) }; var buildResult = await SourceCodeBuilder.BuildTargetsAsync(fetchResult.CheckOutDirectory, buildTargets, new ReadOnlyCollection <ISourceCodeBuilderStrategy>(buildStrategies)); if (buildResult.Any(x => x.HasErrors)) { goto end; } // 5. Targets to deploy. var deployTargets = new[] { new DeployTarget(buildResult[0], DeployTargetType.IIS, new IISDeployTargetExtraInfo("Nrea", 54007)), //new DeployTarget(buildTargets[1], DeployTargetType.DotNetCoreRun, new IISDeployTargetExtraInfo("Nrea")) }; var deployResult = await DeployManager.DeployTargetsAsync(deployTargets, new ReadOnlyCollection <IDeployStrategy>(deployStrategies)); foreach (var item in deployResult) { Log.Information($"Deployment result: {item.Target.BuildTarget.Target.Name}, IsError: {item.HasErrors}"); } end: Log.Information("End."); Console.ReadLine(); }
static void RunRepoImporter(params string[] args) { string repoName = args[0]; string rootDirectory = args[1]; var targetIndexName = AnalysisServices.GetTargetIndexName(repoName); string[] file = new string[0]; bool requireProjectsExist = true; string assembly = null; if (File.Exists(rootDirectory)) { if (rootDirectory.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || rootDirectory.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) { assembly = rootDirectory; } file = new[] { rootDirectory }; rootDirectory = Path.GetDirectoryName(rootDirectory); requireProjectsExist = false; } Directory.CreateDirectory("output"); using (StreamWriter writer = new StreamWriter(@"output\log.txt")) { Logger logger = new MultiLogger( new ConsoleLogger(), new TextLogger(TextWriter.Synchronized(writer))); FileSystem fileSystem = new CachingFileSystem( new UnionFileSystem(file.Union(args.Skip(2)), new RootFileSystem(rootDirectory, new MultiFileSystemFilter( new DirectoryFileSystemFilter(@"\.", ".sln"), new GitIgnoreFilter(), new BinaryFileSystemFilter(new string[] { ".exe", ".dll", "*.blob", ".db" }) )) { DisableEnumeration = file.Length != 0 })); List <RepoProjectAnalyzer> projectAnalyzers = new List <RepoProjectAnalyzer>() { new MSBuildSolutionProjectAnalyzer() //new ManagedSolutionProjectAnalyzer() { RequireProjectFilesExist = requireProjectsExist } }; if (assembly != null) { fileSystem = new FileSystem(); projectAnalyzers.Clear(); projectAnalyzers.Add(new MetadataAsSourceProjectAnalyzer(file)); } IAnalysisTarget analysisTarget = null; if (analysisOnly) { analysisTarget = new NullAnalysisTarget(); } else { ElasticsearchStorage storage = new ElasticsearchStorage(url); logger.WriteLine("Removing repository"); ((IStorage)storage).RemoveRepository(targetIndexName).GetAwaiter().GetResult(); logger.WriteLine("Removed repository"); analysisTarget = storage; } RepositoryImporter importer = new RepositoryImporter(repoName, rootDirectory, new AnalysisServices( targetIndexName, fileSystem, analyzers: new RepoFileAnalyzer[] { new SolutionFileAnalyzer(), new MSBuildFileAnalyzer(), new XmlFileAnalyzer( ".ds", ".xml", ".config", ".settings"), }) { AnalysisTarget = analysisTarget, Logger = logger, }) { AnalyzerDatas = projectAnalyzers.Select(a => new AnalyzerData() { Analyzer = a }).ToList() }; importer.Import(finalizeImport: finalize).GetAwaiter().GetResult(); } }