Esempio n. 1
0
 public DivisionOperation(IResultOutput resultOutput, List <IValidator> validators) : base(resultOutput, validators)
 {
     if (validators.FirstOrDefault(v => v is DivisionByZeroValidator) != null)
     {
         validators.Add(new DivisionByZeroValidator());
     }
 }
        private static void Main(CommandLineArguments args)
        {
            var cache   = new MetadataPackageCache(Path.GetFullPath(ConfigurationManager.AppSettings["NuGetPackagesPath"]));
            var sources = new IFeatureTableSource[] {
                new GeneralInfoTableSource(cache),
                new NetFxSupportTableSource(cache),
                new FeatureTestTableSource(new FeatureTestRunner())
            };
            var outputs = new IResultOutput[] {
                new HtmlOutput(new DirectoryInfo(ConfigurationManager.AppSettings["HtmlTemplatesPath"])),
                new JsonOutput()
            };

            var outputDirectory = new DirectoryInfo(args.OutputPath ?? ConfigurationManager.AppSettings["OutputPath"]);

            if (!outputDirectory.Exists)
            {
                outputDirectory.Create();
            }

            var assemblyPaths = GetAssemblyPaths(args);
            var results       = assemblyPaths.Select(path => {
                ConsoleEx.Write(ConsoleColor.White, "Running " + Path.GetFileName(path) + ":");
                var assembly = Assembly.LoadFrom(path);

                var tables = sources.SelectMany(s => s.GetTables(assembly)).ToArray();
                CalculateTotal(tables.Single(t => t.Key == MetadataKeys.GeneralInfoTable), tables);

                var outputNamePrefix = assembly.GetName().Name.SubstringAfter(AssemblyNamePrefix);
                var result           = new ResultForAssembly(assembly, tables, outputNamePrefix);

                ConsoleEx.WriteLine(ConsoleColor.Green, " OK");
                return(result);
            }).ToArray();

            Console.WriteLine();
            ConsoleEx.WriteLine(ConsoleColor.White, "Creating outputs:");
            foreach (var output in outputs)
            {
                output.Write(outputDirectory, results, args.WatchTemplates);
            }

            if (args.WatchTemplates)
            {
                Console.WriteLine();
                ConsoleEx.WriteLine(ConsoleColor.White, "Auto-updating outputs if templates change.");
                ConsoleEx.WriteLine(ConsoleColor.White, "Press [Enter] to stop.");
                Console.ReadLine();
            }

            foreach (var output in outputs)
            {
                output.Dispose();
            }

            Console.WriteLine();
            ConsoleEx.WriteLine(ConsoleColor.Green, "Completed.");
        }
 public MultiplicationOperation(IResultOutput resultOutput) : base(resultOutput)
 {
 }
 public MultiplicationOperation(IResultOutput resultOutput, IReadOnlyList <IValidator> validators) : base(resultOutput, validators)
 {
 }
Esempio n. 5
0
 public Operation(IResultOutput resultOutput) => _resultOutput = resultOutput;
Esempio n. 6
0
        public IResultOutput Subtraction(double first, double second)
        {
            IResultOutput result = Calculators.SimpleCalculator(first, second, '-');

            return(result);
        }
Esempio n. 7
0
        public IResultOutput Division(double first, double second)
        {
            IResultOutput result = Calculators.SimpleCalculator(first, second, '/');

            return(result);
        }
Esempio n. 8
0
        public IResultOutput Multiplication(double first, double second)
        {
            IResultOutput result = Calculators.SimpleCalculator(first, second, '*');

            return(result);
        }
Esempio n. 9
0
        private static void Main(CommandLineArguments args)
        {
            var cache = new LocalPackageCache(Path.GetFullPath(ConfigurationManager.AppSettings["NuGetPackagesPath"]));
            var httpDataProvider = new HttpDataProvider(new DirectoryInfo("HttpCache"));

            var attributeCleaner = new AttributeTextCleaner();
            var sources = new IFeatureTableSource[] {
                new GeneralInfoTableSource(
                    cache,
                    httpDataProvider,
                    new LicenseResolver(httpDataProvider, new Uri(ConfigurationManager.AppSettings["LicensesJsonUrl"]))
                ),
                new NetFxSupportTableSource(cache),
                new FeatureTestTableSource(new FeatureTestRunner(attributeCleaner), attributeCleaner, new ExceptionNormalizer())
            };
            var outputs = new IResultOutput[] {
                new HtmlOutput(new DirectoryInfo(ConfigurationManager.AppSettings["HtmlTemplatesPath"])),
                new JsonOutput()
            };

            var outputDirectory = new DirectoryInfo(args.OutputPath ?? ConfigurationManager.AppSettings["OutputPath"]);
            if (!outputDirectory.Exists)
                outputDirectory.Create();

            var assemblyPaths = GetAssemblyPaths();
            var results = assemblyPaths.Select(path => {
                console.White.Text("Running " + Path.GetFileName(path) + ":");
                try {
                    var assembly = Assembly.LoadFrom(path);

                    var tables = sources.SelectMany(s => s.GetTables(assembly)).ToArray();
                    CalculateTotal(tables.Single(t => t.Key == MetadataKeys.GeneralInfoTable), tables);

                    var outputNamePrefix = assembly.GetName().Name.SubstringAfter(AssemblyNamePrefix);
                    var result = new ResultForAssembly(assembly, tables, outputNamePrefix);

                    console.Green.Line(" OK");
                    return result;
                }
                catch (Exception) {
                    console.Red.Line(" FAIL");
                    throw;
                }
            }).ToArray();

            console.NewLine();
            console.White.Line("Creating outputs:");
            foreach (var output in outputs) {
                output.Write(outputDirectory, results, args.WatchTemplates);
            }

            if (args.WatchTemplates) {
                console.NewLine()
                       .White
                       .Line("Auto-updating outputs if templates change.")
                       .Line("Press [Enter] to stop.");
                Console.ReadLine();
            }

            foreach (var output in outputs) {
                output.Dispose();
            }

            Console.WriteLine();
            console.Green.Line("Completed.");
        }
Esempio n. 10
0
        private static void Main(CommandLineArguments args)
        {
            var cache            = new LocalPackageCache(Path.GetFullPath(ConfigurationManager.AppSettings["NuGetPackagesPath"]));
            var httpDataProvider = new HttpDataProvider(new DirectoryInfo("HttpCache"));

            var attributeCleaner = new AttributeTextCleaner();
            var sources          = new IFeatureTableSource[] {
                new GeneralInfoTableSource(
                    cache,
                    httpDataProvider,
                    new LicenseResolver(httpDataProvider, new Uri(ConfigurationManager.AppSettings["LicensesJsonUrl"]))
                    ),
                new NetFxSupportTableSource(cache),
                new FeatureTestTableSource(new FeatureTestRunner(attributeCleaner), attributeCleaner, new ExceptionNormalizer())
            };
            var outputs = new IResultOutput[] {
                new HtmlOutput(new DirectoryInfo(ConfigurationManager.AppSettings["HtmlTemplatesPath"])),
                new JsonOutput()
            };

            var outputDirectory = new DirectoryInfo(args.OutputPath ?? ConfigurationManager.AppSettings["OutputPath"]);

            if (!outputDirectory.Exists)
            {
                outputDirectory.Create();
            }

            var assemblyPaths = GetAssemblyPaths();
            var results       = assemblyPaths.Select(path => {
                console.White.Text("Running " + Path.GetFileName(path) + ":");
                try {
                    var assembly = Assembly.LoadFrom(path);

                    var tables = sources.SelectMany(s => s.GetTables(assembly)).ToArray();
                    CalculateTotal(tables.Single(t => t.Key == MetadataKeys.GeneralInfoTable), tables);

                    var outputNamePrefix = assembly.GetName().Name.SubstringAfter(AssemblyNamePrefix);
                    var result           = new ResultForAssembly(assembly, tables, outputNamePrefix);

                    console.Green.Line(" OK");
                    return(result);
                }
                catch (Exception) {
                    console.Red.Line(" FAIL");
                    throw;
                }
            }).ToArray();

            console.NewLine();
            console.White.Line("Creating outputs:");
            foreach (var output in outputs)
            {
                output.Write(outputDirectory, results, args.WatchTemplates);
            }

            if (args.WatchTemplates)
            {
                console.NewLine()
                .White
                .Line("Auto-updating outputs if templates change.")
                .Line("Press [Enter] to stop.");
                Console.ReadLine();
            }

            foreach (var output in outputs)
            {
                output.Dispose();
            }

            Console.WriteLine();
            console.Green.Line("Completed.");
        }
 public SubtractionOperation(IResultOutput resultOutput) : base(resultOutput)
 {
 }
Esempio n. 12
0
 public SumOperation(IResultOutput resultOutput) : base(resultOutput)
 {
 }
Esempio n. 13
0
 public DivisionOperation(IResultOutput resultOutput) : base(resultOutput, new List <IValidator> {
     new DivisionByZeroValidator()
 })
 {
 }