2025-05-02 11:39:41 +08:00
|
|
|
|
using MongoDB.Bson;
|
|
|
|
|
using MongoDB.Bson.Serialization.Serializers;
|
|
|
|
|
using MongoDB.Driver;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2025-05-02 15:46:46 +08:00
|
|
|
|
using System.Data;
|
2025-05-02 11:39:41 +08:00
|
|
|
|
using System.Data.Common;
|
2025-05-02 15:46:46 +08:00
|
|
|
|
using System.Net.Http.Headers;
|
2025-05-02 11:39:41 +08:00
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace MongoDb.Ado.data
|
|
|
|
|
{
|
|
|
|
|
public class DbDataReaderFactory
|
|
|
|
|
{
|
|
|
|
|
public DbDataReader Handle(string operation, IMongoCollection<BsonDocument> collection, string json)
|
|
|
|
|
{
|
|
|
|
|
var doc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonValue>(json);
|
|
|
|
|
IQueryHandler queryHandler = null;
|
|
|
|
|
if (operation == "find")
|
|
|
|
|
{
|
|
|
|
|
queryHandler = new QueryFindHandler();
|
|
|
|
|
}
|
|
|
|
|
else if (operation == "aggregate")
|
|
|
|
|
{
|
|
|
|
|
queryHandler = new QueryAggregateHandler();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-05-02 15:46:46 +08:00
|
|
|
|
ExecuteHandlerFactory.Handler(operation,json, collection);
|
|
|
|
|
return new DataTable().CreateDataReader();
|
2025-05-02 11:39:41 +08:00
|
|
|
|
}
|
|
|
|
|
return queryHandler.Find(collection, doc);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|