Esempio n. 1
0
        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);
        }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
 /// <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));
 }