Beispiel #1
0
        /// <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);
                    }
                }
            }
        }
Beispiel #2
0
 /// <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;
 }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BigDQuery"/> class.
 /// </summary>
 /// <param name="view">The view.</param>
 public BigDQuery(IBigDViewDefinition view)
 {
     View = view;
 }
Beispiel #5
0
 /// <summary>
 /// Queries the specified view.
 /// </summary>
 /// <param name="view">The view.</param>
 /// <returns>CouchQuery.</returns>
 public BigDQuery Query(IBigDViewDefinition view)
 {
     return(new BigDQuery(view));
 }