public async Task <T> GetFromStoreAsync <T>(T query, OptionsIn optionsIn) where T : IWitsmlQueryType, new() { try { var request = new WMLS_GetFromStoreRequest { WMLtypeIn = query.TypeName, OptionsIn = optionsIn.GetName(), QueryIn = XmlHelper.Serialize(query), CapabilitiesIn = "" }; var response = await client.WMLS_GetFromStoreAsync(request); LogQueriesSentAndReceived(request.QueryIn, response.IsSuccessful(), response.XMLout); if (response.IsSuccessful()) { return(XmlHelper.Deserialize <T>(response.XMLout)); } var errorResponse = await client.WMLS_GetBaseMsgAsync(response.Result); throw new Exception($"Error while querying store: {response.Result} - {errorResponse.Result}. {response.SuppMsgOut}"); } catch (XmlException e) { Log.Error(e, "Failed to deserialize response from Witsml server"); return(new T()); } }
public void SidewallCore141WitsmlStore_GetFromStore_Can_Transform_SidewallCore() { AddParents(); DevKit.AddAndAssert <SidewallCoreList, SidewallCore>(SidewallCore); // Re-initialize all capServer providers DevKit.Store.CapServerProviders = null; DevKit.Container.BuildUp(DevKit.Store); string typeIn, queryIn; var query = DevKit.List(DevKit.CreateQuery(SidewallCore)); DevKit.SetupParameters <SidewallCoreList, SidewallCore>(query, ObjectTypes.SidewallCore, out typeIn, out queryIn); var options = OptionsIn.Join(OptionsIn.ReturnElements.All, OptionsIn.DataVersion.Version131); var request = new WMLS_GetFromStoreRequest(typeIn, queryIn, options, null); var response = DevKit.Store.WMLS_GetFromStore(request); Assert.IsFalse(string.IsNullOrWhiteSpace(response.XMLout)); Assert.AreEqual((short)ErrorCodes.Success, response.Result); var result = WitsmlParser.Parse(response.XMLout); var version = ObjectTypes.GetVersion(result.Root); Assert.AreEqual(OptionsIn.DataVersion.Version131.Value, version); }
/// <summary> /// Converts a specific request object into a common structure. /// </summary> /// <param name="request">The GetFromStore request object.</param> /// <returns>The request context instance.</returns> public static RequestContext ToContext(this WMLS_GetFromStoreRequest request) { return(new RequestContext( function: Functions.GetFromStore, objectType: request.WMLtypeIn, xml: request.QueryIn, options: request.OptionsIn, capabilities: request.CapabilitiesIn)); }
/// <summary> /// Returns one or more WITSML data-objects from the server. /// </summary> /// <param name="request">The request object encapsulating the method input parameters.</param> /// <returns> /// A positive value indicating success along with one or more WITSML data-objects from the server, or a negative value indicating an error. /// </returns> public WMLS_GetFromStoreResponse WMLS_GetFromStore(WMLS_GetFromStoreRequest request) { return(_store.WMLS_GetFromStore(request)); }