public void QueryExpandtTest() { // prepare var odataQuery1 = new OdataQuery { QuerySelect = new QuerySelect(new[] { "name" }), QueryFilter = new QueryFilter("name eq 'test'") }; var odataQuery2 = new OdataQuery { QuerySelect = new QuerySelect(new[] { "id", "result" }), QueryTop = new QueryTop(5) }; var query = new QueryExpand(new[] { new Expand(new[] { "Datastreams" }, odataQuery1), new Expand(new[] { "Datastreams", "Observations" }, odataQuery2) } ); // assert Assert.AreEqual(2, query.Value.Length); Assert.AreEqual("expand", query.GetQueryParam()); Assert.AreEqual("Datastreams($select=name;$filter=name eq 'test'),Datastreams/Observations($select=id,result;$top=5)", query.GetQueryValueString()); }
private async Task <Response <T> > Get <T>(Type get, string id, OdataQuery odata) { var idString = string.IsNullOrEmpty(id) ? "" : $"({id})"; var url = $"{_homedoc.GetUrlByEntityName(get.GetString(true))}{idString}"; url = odata != null?odata.AppendOdataQueryToUrl(url) : url; return(await Http.GetJson <T>(url)); }
private async Task <Response <T> > Get <T>(Type get, Type by, string id, OdataQuery odata) { if (by == null) { throw new ArgumentNullException(nameof(by)); } if (string.IsNullOrEmpty(id)) { throw new ArgumentException("ID is required", nameof(id)); } var url = $"{_homedoc.GetUrlByEntityName(by.GetString(true))}({id})/{get.GetString(by)}"; url = odata != null?odata.AppendOdataQueryToUrl(url) : url; return(await Http.GetJson <T>(url)); }
/// <summary> /// Get Datastreams where name contains temperature including Sensor and ObservedProperty /// and the 5 latest observations with a result of 15 or higher /// select only id and name for datastreams and id, result and phenomenonTime for the observations /// </summary> public static async void GetDatastreamsOdataExample() { var odataQueryObservations = new OdataQuery { QuerySelect = new QuerySelect(new[] { "id", "result", "phenomenonTime" }), QueryTop = new QueryTop(5), QueryFilter = new QueryFilter("result ge 15"), QueryOrderBy = new QueryOrderBy(new Dictionary <string, OrderType> { { "phenomenonTime", OrderType.Descending } }) }; var odataQuery = new OdataQuery { QuerySelect = new QuerySelect(new[] { "id", "name" }), QueryFilter = new QueryFilter("contains(name,'temperature')"), QueryExpand = new QueryExpand(new[] { new Expand(new[] { "Sensor" }), new Expand(new[] { "ObservedProperty" }), new Expand(new[] { "Observations" }, odataQueryObservations) }) }; var datastreamsResponse = await Client.GetDatastreamCollection(odataQuery); if (datastreamsResponse.Success) { var datastreams = datastreamsResponse.Result; foreach (var datastream in datastreams.Items) { Console.WriteLine("------------------------------"); Console.WriteLine($"Datastream: {datastream.Name}"); Console.WriteLine("------------------------------"); Console.WriteLine($"Sensor: {datastream.Sensor.Name}"); Console.WriteLine($"ObservedProperty: {datastream.ObservedProperty.Name}"); foreach (var obs in datastream.Observations) { Console.WriteLine($"{obs.PhenomenonTime.Start} - {obs.Result}"); } Console.WriteLine(""); } } }
private async void LoadData() { var client = new SensorThingsClient(serverurl); var odata = new OdataQuery { QueryExpand = new QueryExpand(new[] { new Expand(new[] { "Observations" }) } ) }; var response = await client.GetDatastream(datastreamid, odata); var datastream = response.Result; var lineSerie = new OxyPlot.Series.LineSeries { StrokeThickness = 2, MarkerSize = 3, MarkerStroke = Colors.GetColors[0], MarkerType = MarkerTypes.markerTypes[0], CanTrackerInterpolatePoints = false, Title = datastream.Description, Smooth = false, }; var obs = datastream.Observations.OrderBy(m => m.PhenomenonTime.Start); foreach (var observation in obs) { if (observation.PhenomenonTime != null) { var time = observation.GetPhenomenonTime(true); var res = Convert.ToDouble(observation.Result); lineSerie.Points.Add(new DataPoint(OxyPlot.Axes.DateTimeAxis.ToDouble(time), res)); } } plotModel.Series.Add(lineSerie); plotview.InvalidatePlot(); }
public void OdataQueryTest() { // prepare var odataQuery1 = new OdataQuery { QuerySelect = new QuerySelect(new[] { "name" }), QueryFilter = new QueryFilter("name eq 'test'") }; var odataQuery2 = new OdataQuery { QuerySelect = new QuerySelect(new[] { "id", "result" }), QueryTop = new QueryTop(5) }; var odataQuery = new OdataQuery { QuerySelect = new QuerySelect(new[] { "id", "name" }), QueryTop = new QueryTop(5), QuerySkip = new QuerySkip(1), QueryCount = new QueryCount(true), QueryFilter = new QueryFilter("name eq 'test'"), QueryOrderBy = new QueryOrderBy(new Dictionary <string, OrderType> { { "name", OrderType.Descending } }), QueryExpand = new QueryExpand(new[] { new Expand(new[] { "Datastreams" }, odataQuery1), new Expand(new[] { "Datastreams", "Observations" }, odataQuery2) } ) }; Assert.AreEqual(7, odataQuery.GetOdataQueryStrings().Count()); Assert.AreEqual("http://stserver/v1.0/Things?$expand=Datastreams($select=name;$filter=name eq 'test'),Datastreams/Observations($select=id,result;$top=5)&$select=id,name&$filter=name eq 'test'&$orderby=name desc&$top=5&$skip=1&$count=true", odataQuery.AppendOdataQueryToUrl("http://stserver/v1.0/Things")); }
public async Task <Response <SensorThingsCollection <Location> > > GetLocationCollectionByThing( string id, OdataQuery odata = null) { return(await Get <SensorThingsCollection <Location> >(typeof(Location), typeof(Thing), id, odata)); }
public async Task <Response <SensorThingsCollection <Location> > > GetLocationCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <Location> >(typeof(Location), null, odata)); }
public async Task <Response <SensorThingsCollection <Thing> > > GetThingCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <Thing> >(typeof(Thing), null, odata)); }
public async Task <Response <ObservedProperty> > GetObservedPropertyByDatastream( string id, OdataQuery odata = null) { return(await Get <ObservedProperty>(typeof(ObservedProperty), typeof(Datastream), id, odata)); }
GetFeatureOfInterestCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <FeatureOfInterest> >(typeof(FeatureOfInterest), null, odata)); }
GetHistoricalLocationsCollectionByThing(string id, OdataQuery odata = null) { return(await Get <SensorThingsCollection <HistoricalLocation> >(typeof(HistoricalLocation), typeof(Thing), id, odata)); }
GetObservationCollectionByDatastream(string id, OdataQuery odata = null) { return(await Get <SensorThingsCollection <Observation> >(typeof(Observation), typeof(Datastream), id, odata)); }
public async Task <Response <FeatureOfInterest> > GetFeatureOfInterestByObservation( string id, OdataQuery odata = null) { return(await Get <FeatureOfInterest>(typeof(FeatureOfInterest), typeof(Observation), id, odata)); }
GetObservationCollectionByFeatureOfInterest(string id, OdataQuery odata = null) { return(await Get <SensorThingsCollection <Observation> >(typeof(Observation), typeof(FeatureOfInterest), id, odata)); }
GetObservationCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <Observation> >(typeof(Observation), null, odata)); }
public async Task <Response <Observation> > GetObservation(string id, OdataQuery odata = null) { return(await Get <Observation>(typeof(Observation), id, odata)); }
public async Task <Response <HistoricalLocation> > GetHistoricalLocation(string id, OdataQuery odata = null) { return(await Get <HistoricalLocation>(typeof(HistoricalLocation), id, odata)); }
public async Task <Response <Sensor> > GetSensorByDatastream(string id, OdataQuery odata = null) { return(await Get <Sensor>(typeof(Sensor), typeof(Datastream), id, odata)); }
GetHistoricalLocationsCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <HistoricalLocation> >(typeof(HistoricalLocation), null, odata)); }
GetDatastreamCollectionBySensor(string id, OdataQuery odata = null) { return(await Get <SensorThingsCollection <Datastream> >(typeof(Datastream), typeof(ObservedProperty), id, odata)); }
public async Task <Response <Datastream> > GetDatastream(string id, OdataQuery odata = null) { return(await Get <Datastream>(typeof(Datastream), id, odata)); }
public async Task <Response <Thing> > GetThingByDatastream(string id, OdataQuery odata = null) { return(await Get <Thing>(typeof(Thing), typeof(Datastream), id, odata)); }
GetDatastreamCollectionByThing(string id, OdataQuery odata = null) { return(await Get <SensorThingsCollection <Datastream> >(typeof(Datastream), typeof(Thing), id, odata)); }
public async Task <Response <Thing> > GetThingByHistoricalLocation(string id, OdataQuery odata = null) { return(await Get <Thing>(typeof(Thing), typeof(HistoricalLocation), id, odata)); }
GetDatastreamCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <Datastream> >(typeof(Datastream), null, odata)); }
GetObservedPropertyCollection(OdataQuery odata = null) { return(await Get <SensorThingsCollection <ObservedProperty> >(typeof(ObservedProperty), null, odata)); }