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)); }
/// <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); } }
/// <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)); }