예제 #1
0
 public FileSystem(IRebalanceInfoFormatter formatter, string outputDirectory)
 {
     _formatter       = formatter ?? throw new ArgumentNullException(nameof(formatter));
     _outputDirectory = string.IsNullOrEmpty(outputDirectory)
                            ? outputDirectory
                            : Environment.ExpandEnvironmentVariables(outputDirectory);
 }
예제 #2
0
        private static void Execute(IList <string> files, IRebalanceInfoFormatter formatter, IFileSystem fileSystem)
        {
            IDictionary <string, List <ItemInfo> > weaponNames = AlliedModsWiki.GetItemInfos();
            var itemInfoSource  = new ItemInfoSource(weaponNames);
            var classNameSource = new ClassNameSource();
            var transformations = new Dictionary <string, ITransformation <Node> >
            {
                {
                    "tf2rebalance_attributes", new Tf2RebalanceTransformation(itemInfoSource,
                                                                              classNameSource)
                },
                {
                    "Custom Attributes", new CustomAttributesTransformation(itemInfoSource,
                                                                            classNameSource)
                },
            };
            IConverter converter = new CompositeTf2FormatConverter(new ValveFormatParser(), transformations);

            foreach (string filename in files)
            {
                CreateSummary(filename, converter, formatter, fileSystem);
            }

            Log.Information("finished creating summaries for {ConfigFileCount} configs", files.Count);
        }
예제 #3
0
        public void TestInitialize()
        {
            if (Directory.Exists("input"))
            {
                Directory.Delete("input", true);
            }

            if (Directory.Exists("Test"))
            {
                Directory.Delete("Test", true);
            }

            var formatter = new Mock <IRebalanceInfoFormatter>();

            formatter.SetupGet(f => f.FileExtension).Returns("test");
            _formatter = formatter.Object;
        }
예제 #4
0
        private int OnExecuteAsync(CommandLineApplication app)
        {
            if (Files == null || Files.Count == 0)
            {
                app.ShowHelp();

                Console.WriteLine("press enter to exit");
                Console.ReadLine();
                return(0);
            }

            IRebalanceInfoFormatter formatter  = CreateFormatter(FormatterOption);
            IFileSystem             fileSystem = CreateFileSystem(formatter, OutputDirectory);

            Execute(Files, formatter, fileSystem);
            return(0);
        }
예제 #5
0
        private static void CreateSummary(string filename, IConverter converter, IRebalanceInfoFormatter formatter, IFileSystem fileSystem)
        {
            Log.Information("reading config from {ConfigFileName}", filename);

            string input = fileSystem.Read(filename);

            IEnumerable <RebalanceInfo> rebalanceInfos = converter.Execute(input);
            string output = formatter.Create(rebalanceInfos);

            if (string.IsNullOrEmpty(output))
            {
                Log.Error("input could not be read skipping summary");
                return;
            }

            fileSystem.WriteToOutput(filename, output);
        }
예제 #6
0
 private IFileSystem CreateFileSystem(IRebalanceInfoFormatter formatter, string outputDirectory)
 {
     return(new FileSystem(formatter, outputDirectory));
 }