private void OnGetResourcesCore(object sender, DualListRequestEventArgs <v12.Protocol.Discovery.GetResources, v12.Datatypes.Object.Resource, v12.Datatypes.Object.Edge> args) { var handler = (v12.Protocol.Discovery.IDiscoveryStore)sender; var resources = Enumerable.Empty <v12.Datatypes.Object.Resource>(); bool?activeStatusFilter = null; if (args.Request.Body.ActiveStatusFilter != null) { activeStatusFilter = args.Request.Body.ActiveStatusFilter == v12.Datatypes.Object.ActiveStatusKind.Active ? true : false; } var uri = new EtpUri(args.Request.Body.Context.Uri); if (!uri.IsEtp12) { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } else if (uri.IsDataRootUri || uri.IsObjectUri) // List data objects { resources = Store.GetObjects(EtpVersion.v12, new MockGraphContext(args.Request.Body), activeStatusFilter, args.Request.Body.StoreLastWriteFilter) .Where(o => handler.Session.SessionSupportedDataObjects.IsSupported(o.DataObjectType)) .Select(o => o.Resource12(true)); } else { args.FinalError = handler.ErrorInfo().InvalidUri(uri); } args.Responses1.AddRange(resources); }
private void OnGetResources(object sender, DualListRequestEventArgs <v12.Protocol.Discovery.GetResources, v12.Datatypes.Object.Resource, v12.Datatypes.Object.Edge> args) { Store.ExecuteWithLock(() => { OnGetResourcesCore(sender, args); }); }
protected override void HandleGetResources(DualListRequestEventArgs <GetResources, Resource, Edge> args) { if (args.Request.Body.Context.Uri == EtpUri.RootUri12) { var now = DateTime.UtcNow; var uri = new EtpUri("eml:///witsml20.Well(5c365045-3a12-49b3-9276-356b90fff03b)"); args.Responses1.Add(new Resource { Uri = uri, Name = "Test Well", AlternateUris = new List <string>(), CustomData = new Dictionary <string, DataValue>(), LastChanged = now, StoreLastWrite = now, StoreCreated = now, SourceCount = 0, TargetCount = 0, ActiveStatus = ActiveStatusKind.Inactive, }); } else { args.FinalError = ErrorInfo().NotSupported(); } }
/// <summary> /// Handles the GetResources message from a customer. /// </summary> /// <param name="args">The <see cref="DualListRequestEventArgs{GetResources, Resource, Edge}"/> instance containing the event data.</param> protected virtual void HandleGetResources(DualListRequestEventArgs <GetResources, Resource, Edge> args) { }