public PasswordStoreController(ILogger <PasswordStoreController> logger, IPassStoreRepo <PasswordStoreModel> repo, IMapper mapper) { _logger = logger; _repo = repo ?? throw new PassStoreException(PassStoreException.ErrorCategory.Configuration, "PassStoreRepo is not configured."); _mapper = mapper; }
void ConfigRepos(IServiceCollection services) { IPassStoreRepo <PasswordStoreModel> repo = null; var repos = Configuration.GetSection("Repos").Get <string[]>(); var option = int.Parse(Configuration.GetValue <string>("PreferredRepo")); if (repos[option - 1].Equals("mongo", StringComparison.OrdinalIgnoreCase)) { var cs = Configuration.GetSection("Mongo").GetValue <string>("DbConnection"); var di = cs.LastIndexOf("/"); var db = cs?.Substring(di + 1, cs.IndexOf("?") - di - 1); repo = new PassStoreMongo(new MongoClient(cs), db); } services.AddSingleton <IPassStoreRepo <PasswordStoreModel> >(repo ?? new PassStoreInMemory()); new TaskFactory().StartNew(() => { LoadTestData(services); }); }