public void Setup() { var calcConfig = new CalculatorConfigModel(); var parseConfig = new ParseConfigModel(); _calculatorManager = new CalculatorManager(calcConfig); _parseManager = new ParseManager(parseConfig); }
public static IServiceCollection AddManagers(this IServiceCollection services, string[] args) { var calcConfig = new CalculatorConfigModel(); var parseConfig = new ParseConfigModel(); //normally, this would be deserialized. if (args.Any(arg => arg.StartsWith("/AllowNegativeNumbers"))) { calcConfig.AllowNegativeNumbers = true; } if (args.Any(arg => arg.StartsWith("/MaximumNumber"))) { var argument = args.First(arg => arg.StartsWith("/MaximumNumber")); var number = argument.Split(":")[1]; calcConfig.MaximumNumber = int.Parse(number); } if (args.Any(arg => arg.StartsWith("/Operation"))) { var argument = args.First(arg => arg.StartsWith("/Operation")); var alternate = argument.Split(":")[1]; if (alternate.ToLower() == "+") { parseConfig.Operation = OperationEnum.Add; } if (alternate.ToLower() == "-") { parseConfig.Operation = OperationEnum.Subtract; } if (alternate.ToLower() == "*") { parseConfig.Operation = OperationEnum.Multiply; } if (alternate.ToLower() == "div") { parseConfig.Operation = OperationEnum.Divide; } } if (args.Any(arg => arg.StartsWith("/AlternateDelimiter"))) { var argument = args.First(arg => arg.StartsWith("/AlternateDelimiter")); var alternate = argument.Split(":")[1]; parseConfig.AlternateDelimiter = alternate; } services.AddSingleton <CalculatorConfigModel>(calcConfig); services.AddSingleton <ParseConfigModel>(parseConfig); services.AddSingleton <ICalculatorManager, CalculatorManager>(); services.AddScoped <IParseManager, ParseManager>(); return(services); }
public ParseManager(ParseConfigModel config) { _config = config; }