/// <summary> /// Temporaries the result. /// </summary> /// <param name="request">The request.</param> /// <returns>T[].</returns> private T[] GetTempResponse(RequestBase request) { IBigDViewDefinition vw = null; try { if (String.IsNullOrWhiteSpace(request.DocName)) { request.DocName = Guid.NewGuid().ToString(); } if (String.IsNullOrWhiteSpace(request.ViewName)) { request.ViewName = Guid.NewGuid().ToString(); } vw = GetView(request); var res = vw .LinqQuery <T>(request) .ToArray(); return(res); } catch (Exception exception) { _logger.Error(exception.GetCombinedMessages()); return(new T[] {}); } finally { if (vw != null) { if (!request.KeepView) { Repository <T> .Db.DeleteDocument(vw.Doc); } } } }
/// <summary> /// Initializes a new instance of the <see cref="BigDQueryProvider"/> class. /// </summary> /// <param name="db">The db.</param> /// <param name="definition">The definition.</param> public BigDQueryProvider(IBigDDatabase db, IBigDViewDefinition definition) { this.db = db; this.definition = definition; }
/// <summary> /// Processes the expression. /// </summary> /// <param name="expression">The expression.</param> /// <param name="db">The db.</param> /// <param name="definition">The view definition.</param> /// <returns></returns> public ExpressionVisitor ProcessExpression(Expression expression, IBigDDatabase db, IBigDViewDefinition definition) { Query = db.Query(definition); VisitExpression(expression); switch (keys.Count) { case 0: // 0 keys means it's a range query. do nothing. break; case 1: // 1 key means it's a single Equals or a Contains on a single. Query.Key(keys[0]); break; default: // neither 0 nor 1 means that we've got a set of keys to test. Query.Keys(keys); break; } return(this); }
/// <summary> /// Initializes a new instance of the <see cref="BigDQuery"/> class. /// </summary> /// <param name="view">The view.</param> public BigDQuery(IBigDViewDefinition view) { View = view; }
/// <summary> /// Queries the specified view. /// </summary> /// <param name="view">The view.</param> /// <returns>CouchQuery.</returns> public BigDQuery Query(IBigDViewDefinition view) { return(new BigDQuery(view)); }