Created
February 26, 2020 01:52
-
-
Save emgarten/595457532b9a0cc63a830041bb387a84 to your computer and use it in GitHub Desktop.
Example of using hexastore
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using Hexastore.Processor; | |
using Hexastore.Resoner; | |
using Hexastore.Rocks; | |
using Microsoft.Extensions.Logging; | |
using Newtonsoft.Json.Linq; | |
namespace HexaTest | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// Pre-req: install https://www.nuget.org/packages/Hexastore.Rocks/1.0.0-beta.5 | |
var storeId = "test"; | |
var rocksPath = @"e:\tmp\rockstest"; | |
var factory = new LoggerFactory(); | |
var logger = factory.CreateLogger<RocksGraphProvider>(); | |
var storeLogger = factory.CreateLogger<StoreProcessor>(); | |
var provider = new RocksGraphProvider(logger, rocksPath); | |
var storeProvider = new SetProvider(provider); | |
var storeProcessor = new StoreProcessor(storeProvider, new Reasoner(), storeLogger); | |
// Add device | |
var device1 = new JObject(new JProperty("id", "device1"), | |
new JProperty("type", "device"), | |
new JProperty("temp", 5)); | |
var device2 = new JObject(new JProperty("id", "device2"), | |
new JProperty("type", "device"), | |
new JProperty("temp", 10)); | |
storeProcessor.PatchJson(storeId, new JArray(device1, device2)); | |
// Query | |
var query = new JObject( | |
new JProperty("filter", new JObject( | |
new JProperty("type", new JObject( | |
new JProperty("op", "eq"), | |
new JProperty("value", "device")))))); | |
var result = storeProcessor.Query(storeId, query, new string[] { }, 10); | |
// Display | |
Console.WriteLine(result.ToString()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment