/// <summary> /// Initializes a new instance of the <see cref="Startup"/> class. /// Sets configuration. /// </summary> /// <param name="filepath">Location of the configuration file.</param> public Startup(string filepath) { // Download all currencies from Binance TradingPair.Sync(); using (var file = new StreamReader(filepath)) { var configuration = new DeserializerBuilder() .Build() .Deserialize <Configuration>(file); configuration.Bind(); ConfigurationValidator.ValidateConstraintsRecursively(configuration); } }
private static int Main(string[] args) { if (args.Length == 0) { var versionString = Assembly.GetEntryAssembly() .GetCustomAttribute <AssemblyInformationalVersionAttribute>() .InformationalVersion; Console.WriteLine($"spreadshare verify v{versionString}"); Console.WriteLine("-------------"); Console.WriteLine("\nUsage:"); Console.WriteLine(" dotnet verify <file>"); return(2); } var filename = args[0]; StreamReader source; try { source = new StreamReader(filename); } catch (Exception e) { Console.WriteLine(e.Message); return(1); } // Ensure trading pairs can be verified. TradingPair.Sync(); var config = new DeserializerBuilder().Build().Deserialize <Configuration>(source); config.Bind(); var failures = ConfigurationValidator.GetConstraintFailuresRecursively(config).ToArray(); if (!failures.Any()) { return(0); } foreach (var failure in failures) { Console.WriteLine(failure); } return(1); }