private static IServiceCollection AddMongoCardToInfrastructure <TCard, TMongoCard>( this IServiceCollection services, MongoStoreOptions mongoStoreOptions) where TCard : TaskCard where TMongoCard : MongoTaskCard { var taskCardsCollection = MongoStoreUtil.FromConnectionString <TMongoCard>(mongoStoreOptions.ConnectionString, mongoStoreOptions.TaskCardsCollection); services.AddSingleton(x => taskCardsCollection); services.AddTransient(typeof(ICreateTaskCardEntity <TCard>), typeof(TaskCardStore <TCard, TMongoCard>)); services.AddTransient(typeof(IUpdateTaskCardEntity <TCard>), typeof(TaskCardStore <TCard, TMongoCard>)); services.AddTransient(typeof(IDeleteTaskCardEntity <TCard>), typeof(TaskCardStore <TCard, TMongoCard>)); services.AddTransient(typeof(IGetTaskCardEntity <TCard>), typeof(TaskCardStore <TCard, TMongoCard>)); return(services); }
private static IServiceCollection AddMongoListToInfrastructure <TList, TMongoList>( this IServiceCollection services, MongoStoreOptions mongoStoreOptions) where TList : TaskList where TMongoList : MongoTaskList { var taskListsCollection = MongoStoreUtil.FromConnectionString <TMongoList>(mongoStoreOptions.ConnectionString, mongoStoreOptions.TaskListsCollection); services.AddSingleton(x => taskListsCollection); services.AddTransient(typeof(ICreateTaskListEntity <TList>), typeof(TaskListStore <TList, TMongoList>)); services.AddTransient(typeof(IUpdateTaskListEntity <TList>), typeof(TaskListStore <TList, TMongoList>)); services.AddTransient(typeof(IDeleteTaskListEntity <TList>), typeof(TaskListStore <TList, TMongoList>)); services.AddTransient(typeof(IGetTaskListEntity <TList>), typeof(TaskListStore <TList, TMongoList>)); return(services); }