/// <summary> /// Queries the data store using the specified <see cref="WitsmlQueryParser" />. /// </summary> /// <param name="parser">The query parser.</param> /// <param name="objectMappingKey">The object mapping key.</param> /// <returns>The query results collection.</returns> /// <exception cref="WitsmlException"></exception> protected virtual List <T> QueryEntities(WitsmlQueryParser parser, string objectMappingKey) { if (OptionsIn.RequestObjectSelectionCapability.True.Equals(parser.RequestObjectSelectionCapability())) { Logger.DebugFormat("Requesting {0} query template.", objectMappingKey); var template = CreateQueryTemplate(); return(template.AsList()); } var returnElements = parser.ReturnElements(); Logger.DebugFormat("Querying with return elements '{0}'", returnElements); try { Logger.DebugFormat("Querying {0} data object.", objectMappingKey); return(GetAll(parser)); } catch (Exception ex) { Logger.ErrorFormat("Error querying {0} data object: {1}", objectMappingKey, ex); if (ex is WitsmlException) { throw; } throw new WitsmlException(ErrorCodes.ErrorReadingFromDataStore, ex); } }
/// <summary> /// Queries the data store with Mongo Bson filter and projection. /// </summary> /// <param name="parser">The parser.</param> /// <returns>The query results collection.</returns> /// <exception cref="WitsmlException"></exception> protected List <T> QueryEntities(WitsmlQueryParser parser) { try { if (OptionsIn.RequestObjectSelectionCapability.True.Equals(parser.RequestObjectSelectionCapability())) { Logger.DebugFormat("Requesting {0} query template.", DbCollectionName); var queryTemplate = CreateQueryTemplate(); return(queryTemplate.AsList()); } var returnElements = parser.ReturnElements(); Logger.DebugFormat("Querying with return elements '{0}'", returnElements); var fields = GetProjectionPropertyNames(parser); var ignored = GetIgnoredElementNamesForQuery(parser); Logger.DebugFormat("Querying {0} MongoDb collection.", DbCollectionName); var query = new MongoDbQuery <T>(Container, GetCollection(), parser, fields, ignored); return(FilterRecurringElements(query)); } catch (MongoException ex) { Logger.ErrorFormat("Error querying {0} MongoDb collection: {1}", DbCollectionName, ex); throw new WitsmlException(ErrorCodes.ErrorReadingFromDataStore, ex); } }
/// <summary> /// Queries the data store using the specified <see cref="WitsmlQueryParser" />. /// </summary> /// <param name="parser">The query parser.</param> /// <param name="objectType">The object type.</param> /// <returns>The query results collection.</returns> /// <exception cref="WitsmlException"></exception> protected virtual List <T> QueryEntities(WitsmlQueryParser parser, string objectType) { //var mapping = GetMapping(objectType); if (OptionsIn.RequestObjectSelectionCapability.True.Equals(parser.RequestObjectSelectionCapability())) { Logger.DebugFormat("Requesting {0} query template.", objectType); var template = CreateQueryTemplate(); return(template.AsList()); } var returnElements = parser.ReturnElements(); Logger.DebugFormat("Querying with return elements '{0}'", returnElements); try { //var fields = GetProjectionPropertyNames(parser); //var ignored = GetIgnoredElementNamesForQuery(parser); Logger.DebugFormat("Querying {0} data object.", objectType); //var query = new SqlQuery<T>(Container, GetDatabase(), mapping, parser, fields, ignored); //return query.Execute(); return(GetAll(parser)); } catch (Exception ex) { Logger.ErrorFormat("Error querying {0} data object: {1}", objectType, ex); if (ex is WitsmlException) { throw; } throw new WitsmlException(ErrorCodes.ErrorReadingFromDataStore, ex); } }