public override object Call(CHXRequest data, string method) { if (method.ToLower() != "post") { return(null); } var _name = data.Find("name"); var _model = data.Find("model"); var _server = data.Find("server"); var _schema = data.Find("schema"); var _query = data.Find("query"); if (_server == null) { return(null); } if (_query == null) { return(null); } var result = CHXDataModelManager.Query((data.ConvertData.model.ToString() as string), _server.Value.ToString(), CHXQueryType.Json); if (result is CHXFeatures) { var model = new CHXModel() { Name = _name.Value.ToString(), QueryString = data.ConvertData.model.ToString() }; CHXDataModelManager.ModelCollection.Add(model); } else { throw new Exception("Query doğru çalışmadı"); } var collection = new CHXFeatureCollection(); collection.features = result as CHXFeatures; collection.type = "FeatureCollection"; return("OK"); }
public override object Call(CHXRequest data, string method) { if (method.ToLower() != "post") { return(null); } var _server = data.Find("server"); var _schema = data.Find("schema"); var _query = data.Find("query"); if (_server == null) { return(null); } if (_query == null) { return(null); } var result = CHXDataModelManager.Query(data.Data, _server.Value.ToString(), CHXQueryType.Json); //var mydb = CHXDatabaseFactory.GetDatabase(_server.Value.ToString()); //if (mydb == null) throw new NullReferenceException($"{_server.Value.ToString()} isimli veri tabanı bulunamadı"); //var query = mydb.Database.ConvertQuery<string>(data.Data, CHXQueryType.Json); //var result = mydb.Database.RunQuery<dynamic>(query); if (result == null) { return(null); } var collection = new CHXFeatureCollection(); collection.features = result as CHXFeatures; collection.type = "FeatureCollection"; return(collection); }
public override IEnumerable <T> Convert <T>(CHXQuery query, dynamic data) { var collection = new CHXFeatureCollection(); foreach (var row in data) { var feature = new CHXFeature(); feature.properties = new Dictionary <string, object>(); foreach (var col in (row as IDictionary <string, object>)) { if (col.Key == query.GeometryColumn) { if (query.AddGeometry) { var geom = new CHXGeometry(); geom.ReadWkt(col.Value.ToString()); feature.geometry = geom; } } else { feature.properties.Add(col); } } collection.features.Add(feature); } return(collection.features as IEnumerable <T>); }