private void OnGetRanges(object sender, ListRequestEventArgs <v12.Protocol.ChannelSubscribe.GetRanges, v12.Datatypes.ChannelData.DataItem> args) { Store.ExecuteWithLock(() => { OnGetRangesCore(sender, args); }); }
private void OnGetResources(object sender, ListRequestEventArgs <v11.Protocol.Discovery.GetResources, v11.Datatypes.Object.Resource> args) { Store.ExecuteWithLock(() => { OnGetResourcesCore(sender, args); }); }
private void OnGetSupportedTypes(object sender, ListRequestEventArgs <v12.Protocol.SupportedTypes.GetSupportedTypes, v12.Datatypes.Object.SupportedType> args) { Store.ExecuteWithLock(() => { OnGetSupportedTypesCore(sender, args); }); }
private void OnChannelRangeRequestCore(object sender, ListRequestEventArgs <v11.Protocol.ChannelStreaming.ChannelRangeRequest, v11.Datatypes.ChannelData.DataItem> args) { var handler = (v11.Protocol.ChannelStreaming.IChannelStreamingProducer)sender; var sessionId = GetSessionId(handler); if (handler.Capabilities.SimpleStreamer ?? false) { args.FinalError = handler.ErrorInfo().RequestDenied(); return; } if (!Store.HasChannelSubscription(sessionId)) { args.FinalError = handler.ErrorInfo().InvalidState("Start must be sent before ChannelRangeRequest."); } HashSet <long> startedChannels, stoppedChannels, closedChannels, invalidChannels; if (!Store.ValidateChannelIds(sessionId, args.Request.Body.ChannelRanges.SelectMany(cr => cr.ChannelId), out startedChannels, out stoppedChannels, out closedChannels, out invalidChannels)) { args.FinalError = handler.ErrorInfo().RequestDenied(); return; } foreach (var invalidId in invalidChannels.Concat(closedChannels)) { args.ErrorMap[invalidId.ToString()] = handler.ErrorInfo().InvalidState($"Channel {invalidId} is not available."); } if (args.ErrorMap.Count > 0) { return; } var queries = args.Request.Body.ChannelRanges.SelectMany(cr => cr.ChannelId.Select(id => new MockRangeQuery(cr, id))); args.Responses = Store.GetChannelDataRanges(sessionId, queries) .Select(di => di.DataItem11).ToList(); }
private void OnChannelRangeRequest(object sender, ListRequestEventArgs <v11.Protocol.ChannelStreaming.ChannelRangeRequest, v11.Datatypes.ChannelData.DataItem> args) { Store.ExecuteWithLock(() => { OnChannelRangeRequestCore(sender, args); }); }
private void OnChannelDescribe(object sender, ListRequestEventArgs <v11.Protocol.ChannelStreaming.ChannelDescribe, v11.Datatypes.ChannelData.ChannelMetadataRecord> args) { Store.ExecuteWithLock(() => { OnChannelDescribeCore(sender, args); }); }
private void queryPanel_ListRequest(object sender, ListRequestEventArgs e) { string listName = e.ListName; if (listName == "SQL") { GetSqlList(e.SQL, e.ListItems); } else if (listName == "RegionList") { e.ListItems.Clear(); e.ListItems.Add("British Columbia", "BC"); e.ListItems.Add("Colorado", "CO"); e.ListItems.Add("Oregon", "OR"); e.ListItems.Add("Washington", "WA"); } }
protected override void HandleGetResources(ListRequestEventArgs <GetResources, Resource> args) { var witsml20 = new EtpUri("eml://witsml20"); if (args.Request.Body.Uri == EtpUri.RootUri11) { args.Responses.Add(new Resource { Uuid = null, Uri = witsml20, Name = "WITSML Store (2.0)", HasChildren = 1, ContentType = witsml20.ContentType, ResourceType = ResourceTypes.UriProtocol.ToString(), CustomData = new Dictionary <string, string>(), LastChanged = AvroConverter.UtcMinDateTime, ChannelSubscribable = false, ObjectNotifiable = false, }); } else if (args.Request.Body.Uri == witsml20) { var witsml20well = new EtpUri("eml://witsml20/well"); args.Responses.Add(new Resource { Uuid = null, Uri = witsml20well, Name = "Well", HasChildren = 0, ContentType = witsml20well.ContentType, ResourceType = ResourceTypes.Folder.ToString(), CustomData = new Dictionary <string, string>(), LastChanged = AvroConverter.UtcMinDateTime, ChannelSubscribable = false, ObjectNotifiable = false, }); } else { args.FinalError = ErrorInfo().NotSupported(); } }
private void OnGetDeletedResourcesCore(object sender, ListRequestEventArgs <v12.Protocol.Discovery.GetDeletedResources, v12.Datatypes.Object.DeletedResource> args) { var handler = (v12.Protocol.Discovery.IDiscoveryStore)sender; var resources = Enumerable.Empty <v12.Datatypes.Object.DeletedResource>(); var uri = new EtpUri(args.Request.Body.DataspaceUri); if (!uri.IsEtp12 || !uri.IsDataspaceUri) { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } else { resources = Store.GetDeletedObjects(EtpVersion.v12, uri, objectTypes: args.Request.Body.DataObjectTypes.ToDataObjectTypes(), deleteTimeFilter: args.Request.Body.DeleteTimeFilter) .Where(o => handler.Session.SessionSupportedDataObjects.IsSupported(o.DataObjectType)) .Select(@do => @do.DeletedResource12); } args.Responses.AddRange(resources); }
private void QPanel_ListRequest(object sender, ListRequestEventArgs e) { if (e.ListName == "SQL") { CheckConnection(); var sql = e.Data.ToString(); DataSet tempDS = new DataSet(); var tempDA = new SqlDataAdapter(sql, _connection); tempDA.Fill(tempDS, "Temp"); var strWriter = new StringWriter(); tempDS.WriteXml(strWriter); e.ResultXml = strWriter.ToString(); //e.ListItems.Clear(); //foreach (DataRow row in tempDS.Tables[0].Rows) { // e.ListItems.Add(row[1].ToString(), row[0].ToString()); //} } else if (e.ListName == "RegionList") { e.ListItems.Clear(); string country = EqManager.Query.GetOneValueForAttr(_countryAttr); if (country == "Canada" || country == null) { e.ListItems.Add("British Columbia", "BC"); e.ListItems.Add("Quebec", "Quebec"); } if (country == "USA" || country == null) { e.ListItems.Add("California", "CA"); e.ListItems.Add("Colorado", "CO"); e.ListItems.Add("Oregon", "OR"); e.ListItems.Add("Washington", "WA"); } } }
private void OnChannelDescribeCore(object sender, ListRequestEventArgs <v11.Protocol.ChannelStreaming.ChannelDescribe, v11.Datatypes.ChannelData.ChannelMetadataRecord> args) { var handler = (v11.Protocol.ChannelStreaming.IChannelStreamingProducer)sender; var sessionId = GetSessionId(handler); if (handler.Capabilities.SimpleStreamer ?? false) { args.FinalError = handler.ErrorInfo().RequestDenied(); return; } if (!Store.HasChannelSubscription(sessionId)) { args.FinalError = handler.ErrorInfo().InvalidState("Start must be sent before ChannelDescribe."); } var allAddedChannels = new List <MockObject>(); foreach (var subscription in args.Request.Body.GetSubscriptions(sessionId)) // Register metadata subscriptions { var subscriptionInfo = new MockSubscriptionInfo(subscription); if (Store.HasChannelSubscriptionScope(sessionId, subscriptionInfo)) { continue; } IList <MockObject> addedChannels; if (Store.AddChannelSubscriptionChannelScope(sessionId, subscriptionInfo, out addedChannels)) { allAddedChannels.AddRange(addedChannels); } else { args.ErrorMap[subscriptionInfo.RequestUuid.ToString()] = handler.ErrorInfo().RequestDenied($"URI: {subscription.Uri}"); } } args.Responses = allAddedChannels .Where(o => o is IMockGrowingObject) .Select(o => ((IMockGrowingObject)o).ChannelMetadataRecord11(Store.GetChannelId(sessionId, o))) .ToList(); }
private void OnGetResourcesCore(object sender, ListRequestEventArgs <v11.Protocol.Discovery.GetResources, v11.Datatypes.Object.Resource> args) { var handler = (v11.Protocol.Discovery.IDiscoveryStore)sender; var resources = Enumerable.Empty <v11.Datatypes.Object.Resource>(); var uri = new EtpUri(args.Request.Body.Uri); if (!uri.IsEtp11) { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } else if (uri.IsRootUri && Store.Dataspaces.Count > 1) // List dataspaces { resources = Store.Dataspaces .Select(d => d.Resource11); } else if (uri.IsDataspaceUri) // List family versions { resources = Store.GetFamilies(EtpVersion.v11, uri) .Select(f => f.Resource11); } else if (uri.IsFolderUri) // List data objects in folder { // Work around for cross-ML ETP 1.1 URIs: var dataType = MockStore.TryGetCorrectedDataObjectType(uri); resources = Store.GetObjects(EtpVersion.v11, new MockGraphContext(uri.Parent, dataType)) .Select(o => o.Resource11(true)); } else if (uri.IsDataRootUri || uri.IsObjectUri) // List types of data objects available { resources = Store.GetSupportedTypes(EtpVersion.v11, new MockGraphContext(uri, true, false), true) .Select(st => st.Resource11); } else { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } args.Responses.AddRange(resources); }
private void OnGetRangesCore(object sender, ListRequestEventArgs <v12.Protocol.ChannelSubscribe.GetRanges, v12.Datatypes.ChannelData.DataItem> args) { var handler = (v12.Protocol.ChannelSubscribe.IChannelSubscribeStore)sender; var sessionId = GetSessionId(handler); HashSet <long> startedChannels, stoppedChannels, closedChannels, invalidChannels; if (!Store.ValidateChannelIds(sessionId, args.Request.Body.ChannelRanges.SelectMany(cr => cr.ChannelIds), out startedChannels, out stoppedChannels, out closedChannels, out invalidChannels)) { args.FinalError = handler.ErrorInfo().RequestDenied(); return; } if (invalidChannels.Count > 0) { args.FinalError = handler.ErrorInfo().RequestDenied($"Channel {invalidChannels.First()} is not available."); return; } if (closedChannels.Count > 0) { args.FinalError = handler.ErrorInfo().RequestDenied($"Channel {closedChannels.First()} is not available."); return; } foreach (var invalidId in invalidChannels.Concat(closedChannels)) { args.ErrorMap[invalidId.ToString()] = handler.ErrorInfo().InvalidState($"Channel {invalidId} is not available."); } if (args.ErrorMap.Count > 0) { return; } var queries = args.Request.Body.ChannelRanges.SelectMany(cr => cr.ChannelIds.Select(id => new MockRangeQuery(cr, id))); args.Responses = Store.GetChannelDataRanges(sessionId, queries) .Select(di => di.DataItem12).ToList(); }
private void OnGetSupportedTypesCore(object sender, ListRequestEventArgs <v12.Protocol.SupportedTypes.GetSupportedTypes, v12.Datatypes.Object.SupportedType> args) { var handler = (v12.Protocol.SupportedTypes.ISupportedTypesStore)sender; var supportedTypes = Enumerable.Empty <v12.Datatypes.Object.SupportedType>(); var uri = new EtpUri(args.Request.Body.Uri); if (!uri.IsEtp12) { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } else if (uri.IsDataRootUri || uri.IsObjectUri) // List types of data objects available { supportedTypes = Store.GetSupportedTypes(EtpVersion.v12, new MockGraphContext(args.Request.Body), args.Request.Body.ReturnEmptyTypes) .Where(st => handler.Session.SessionSupportedDataObjects.IsSupported(st.DataObjectType)) .Select(st => st.SupportedType12); } else { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } args.Responses.AddRange(supportedTypes); }
/// <summary> /// Handles the GrowingObjectGetRange message from a customer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{GrowingObjectGetRange, ObjectFragment}"/> instance containing the event data.</param> protected virtual void HandleGrowingObjectGetRange(ListRequestEventArgs <GrowingObjectGetRange, ObjectFragment> args) { }
/// <summary> /// Handles the ChannelRangeRequest message from a customer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{ChannelRangeRequest, DataItem}"/> instance containing the event data.</param> protected virtual void HandleChannelRangeRequest(ListRequestEventArgs <ChannelRangeRequest, DataItem> args) { }
/// <summary> /// Handles the GetDataspaces message from a customer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{GetDataspaces, Datatypes.Object.Dataspace}"/> instance containing the event data.</param> protected virtual void HandleGetDataspaces(ListRequestEventArgs <GetDataspaces, Datatypes.Object.Dataspace> args) { }
/// <summary> /// Handles the ChannelDescribe message from a consumer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{ChannelDescribe, ChannelMetadataRecord}"/> instance containing the event data.</param> protected virtual void HandleChannelDescribe(ListRequestEventArgs <ChannelDescribe, ChannelMetadataRecord> args) { }
/// <summary> /// Handles the GetRanges message from a customer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{GetRanges, DataItem}"/> instance containing the event data.</param> protected virtual void HandleGetRanges(ListRequestEventArgs <GetRanges, DataItem> args) { }
/// <summary> /// Handles the GetResources message from a customer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{GetResources, Resource}"/> instance containing the event data.</param> protected virtual void HandleGetResources(ListRequestEventArgs <GetResources, Resource> args) { }
private void OnGetDataspacesCore(object sender, ListRequestEventArgs <v12.Protocol.Dataspace.GetDataspaces, v12.Datatypes.Object.Dataspace> args) { args.Responses.AddRange(Store.Dataspaces.Select(d => d.Dataspace12)); }
/// <summary> /// Handles the GetSupportedTypes message from a customer. /// </summary> /// <param name="args">The <see cref="ListRequestEventArgs{GetSupportedTypes, SupportedType}"/> instance containing the event data.</param> protected virtual void HandleGetSupportedTypes(ListRequestEventArgs <GetSupportedTypes, SupportedType> args) { }