Beispiel #1
0
        public WMLS_GetFromStoreResponse GetFromStore(string wmlTypeIn, string queryIn, string capClient, string optionsIn)
        {
            var request = new WMLS_GetFromStoreRequest {
                WMLtypeIn = wmlTypeIn, QueryIn = queryIn, CapabilitiesIn = capClient, OptionsIn = optionsIn
            };

            return(Store.WMLS_GetFromStore(request));
        }
Beispiel #2
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)
        {
            var context = WitsmlOperationContext.Current.Request = request.ToContext();
            var version = string.Empty;

            try
            {
                _log.Debug(WebOperationContext.Current.ToLogMessage());
                _log.Debug(context);

                UserAuthorizationProvider.CheckSoapAccess();
                WitsmlValidator.ValidateRequest(CapServerProviders);
                version = WitsmlOperationContext.Current.DataSchemaVersion;

                var dataProvider = Container.Resolve <IWitsmlDataProvider>(new ObjectName(context.ObjectType, ObjectFamilies.Witsml, version));
                var result       = dataProvider.GetFromStore(context);

                var response = new WMLS_GetFromStoreResponse(
                    (short)result.Code,
                    GetXmlOut(request, result.Results),
                    result.Message);

                _log.Debug(response.ToLogMessage());

                return(response);
            }
            catch (ContainerException)
            {
                var response = new WMLS_GetFromStoreResponse((short)ErrorCodes.DataObjectNotSupported, string.Empty,
                                                             "WITSML object type not supported: " + context.ObjectType + "; Version: " + version);

                _log.Error(response.ToLogMessage(_log.IsWarnEnabled));

                return(response);
            }
            catch (WitsmlException ex)
            {
                var errorCode = ex.ErrorCode.CorrectNonConformingErrorCodes(WitsmlOperationContext.Current.RequestCompressed);
                var response  = new WMLS_GetFromStoreResponse((short)errorCode, string.Empty, ex.Message);
                _log.Error(response.ToLogMessage(_log.IsWarnEnabled));
                return(response);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Converts a data object collection to XML and optionally converts to a requested version.
        /// </summary>
        /// <param name="request">The GetFromStore request.</param>
        /// <param name="collection">The data object collection.</param>
        /// <returns></returns>
        private string GetXmlOut(WMLS_GetFromStoreRequest request, IEnergisticsCollection collection)
        {
            if (collection == null)
            {
                return(string.Empty);
            }
            EnsureCapServerProviders();

            var    optionsIn = WitsmlOperationContext.Current.OptionsIn;
            string requestedVersion;

            // Attempt transformation if client requested a different version
            if (optionsIn.TryGetValue(OptionsIn.DataVersion.Keyword, out requestedVersion) &&
                _capServerMap.ContainsKey(requestedVersion) &&
                collection.GetVersion() != requestedVersion)
            {
                _log.Debug($"Transforming XMLOut to data schema version {requestedVersion}");
                collection = WitsmlParser.Transform(collection, requestedVersion);
            }

            return(WitsmlParser.ToXml(collection));
        }
 /// <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));
 }