using MongoDB.Bson; using MongoDB.Bson.Serialization.Serializers; using MongoDB.Driver; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Net.Http.Headers; using System.Text; namespace MongoDb.Ado.data { public class DbDataReaderFactory { public readonly static Dictionary Items = new Dictionary(StringComparer.OrdinalIgnoreCase) { { "find", new QueryFindHandler() }, { "aggregate", new QueryFindHandler() }, }; public DbDataReader Handle(string operation, IMongoCollection collection, string json) { MongoDbMethodUtils.ValidateOperation(operation); var doc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize(json); DbDataReaderFactory.Items.TryGetValue(operation, out var handler); if (handler==null) { ExecuteHandlerFactory.Handler(operation, json, collection); return new DataTable().CreateDataReader(); } return handler.Handler(collection, doc); } } }