public CollectionOperators(DeleteOperator <T> deleteOperator, ReplaceOperator <T> replaceOperator, InsertOperator <T> insertOperator, QueryOperator <T> queryOperator, UpdateOperator <T> updateOperator) { Delete = deleteOperator; Replace = replaceOperator; Insert = insertOperator; Query = queryOperator; Update = updateOperator; }
private static CollectionOperators <TDocumentRoot> CreateCollectionOperators <TInterface, TConcrete, TDocumentRoot>( IMongoCollection <TDocumentRoot> mongoCollection, IServiceProvider provider) where TDocumentRoot : class, IDocumentRoot where TConcrete : CallistoCollection <TDocumentRoot>, TInterface { var deleteOperator = new DeleteOperator <TDocumentRoot>(mongoCollection, provider.GetRequiredService <ICallistoDeleteOperationFactory>()); var replaceOperator = new ReplaceOperator <TDocumentRoot>(mongoCollection, provider.GetRequiredService <ICallistoReplaceOperationFactory>()); var queryOperator = new QueryOperator <TDocumentRoot>(mongoCollection, provider.GetRequiredService <ICallistoQueryOperationFactory>()); var updateOperator = new UpdateOperator <TDocumentRoot>(mongoCollection, provider.GetRequiredService <ICallistoUpdateOperationFactory>()); var insertOperator = new InsertOperator <TDocumentRoot>(mongoCollection, provider.GetRequiredService <ICallistoInsertOperationFactory>()); var operators = new CollectionOperators <TDocumentRoot>(deleteOperator, replaceOperator, insertOperator, queryOperator, updateOperator); return(operators); }