Ejemplo n.º 1
0
 public async Task <IAsyncCursor <TField> > DistinctAsync <TField>(
     IClientSessionHandle session,
     FieldDefinition <T, TField> field,
     FilterDefinition <T> filter,
     DistinctOptions options             = null,
     CancellationToken cancellationToken = new CancellationToken()) =>
 await _semaphore.AddRequest(_base.DistinctAsync(session, field, filter, options, cancellationToken));
Ejemplo n.º 2
0
        public void Distinct_should_include_the_filter(
            [Values(false, true)] bool async)
        {
            var subject = CreateSubject();
            var options = new DistinctOptions();

            if (async)
            {
                subject.DistinctAsync(x => x.PropA, _providedFilter, options, CancellationToken.None);

                _mockDerivedCollection.Verify(
                    c => c.DistinctAsync(
                        It.Is <FieldDefinition <B, int> >(f => RenderField(f).Equals("PropA")),
                        It.Is <FilterDefinition <B> >(f => RenderFilter(f).Equals(_expectedFilter)),
                        options,
                        CancellationToken.None),
                    Times.Once);
            }
            else
            {
                subject.Distinct(x => x.PropA, _providedFilter, options, CancellationToken.None);

                _mockDerivedCollection.Verify(
                    c => c.Distinct(
                        It.Is <FieldDefinition <B, int> >(f => RenderField(f).Equals("PropA")),
                        It.Is <FilterDefinition <B> >(f => RenderFilter(f).Equals(_expectedFilter)),
                        options,
                        CancellationToken.None),
                    Times.Once);
            }
        }
Ejemplo n.º 3
0
        public object distinct(object field, object query, object options)
        {
            DistinctOptions distinctOptions = new DistinctOptions();

            var fieldDefinition = new StringFieldDefinition <BsonDocument, object>(field.ToStringOrDefault());
            var cursor          = this._collection.Distinct(
                fieldDefinition,
                query.ToBsonDocument(),
                distinctOptions);

            return(new MongoEvaluatedCursor <object>(cursor));
        }
Ejemplo n.º 4
0
        public void DistinctAsync_should_include_the_filter()
        {
            var subject = CreateSubject();
            var options = new DistinctOptions();

            subject.DistinctAsync(x => x.PropA, _providedFilter, options, CancellationToken.None);

            _derivedCollection.Received().DistinctAsync(
                Arg.Is <FieldDefinition <B, int> >(f => RenderField(f).Equals("PropA")),
                Arg.Is <FilterDefinition <B> >(f => RenderFilter(f).Equals(_expectedFilter)),
                options,
                CancellationToken.None);
        }
Ejemplo n.º 5
0
        public IEnumerable <TField> Distinct <TField, TCollection>(Expression <Func <TCollection, TField> > fieldSelector,
                                                                   FilterDefinition <TCollection> filterDefinition, Collation collation = null)
            where TCollection : DataEntityBase
        {
            IMongoCollection <TCollection> collection = GetCollection <TCollection>();

            Logger.Trace($"{nameof(MongoStore)}.{nameof(Distinct)}",
                         new LogItem("Event", "Get distinct"),
                         new LogItem("FieldType", typeof(TField).ToString),
                         new LogItem("CollectionType", typeof(TCollection).ToString),
                         new LogItem("FieldSelector", fieldSelector.ToString),
                         new LogItem("FilterDefinition", filterDefinition.ToString));

            DistinctOptions distinctOptions = new DistinctOptions()
            {
                Collation = collation
            };

            using (IAsyncCursor <TField> cursor = collection.Distinct(fieldSelector, filterDefinition, distinctOptions))
                foreach (TField p in IterateCursor(cursor))
                {
                    yield return(p);
                }
        }
Ejemplo n.º 6
0
 public abstract IAsyncCursor <TField> Distinct <TField>(FieldDefinition <TDocument, TField> field, FilterDefinition <TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
Ejemplo n.º 7
0
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(FieldDefinition <TDocument, TField> field, FilterDefinition <TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(Task.FromResult(Distinct(field, filter, options, cancellationToken)));
 }
Ejemplo n.º 8
0
 /// <inheritdoc/>
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(FieldDefinition <T, TField> field, FilterDefinition <T> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
Ejemplo n.º 9
0
 /// <inheritdoc/>
 public IAsyncCursor <TField> Distinct <TField>(IClientSessionHandle session, FieldDefinition <T, TField> field, FilterDefinition <T> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
Ejemplo n.º 10
0
 public virtual Task <IAsyncCursor <TField> > DistinctAsync <TField>(IClientSessionHandle session, FieldDefinition <TVal, TField> field, FilterDefinition <TVal> filter, DistinctOptions options = null, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();
Ejemplo n.º 11
0
 public IAsyncCursor <TField> Distinct <TField>(FieldDefinition <TModel, TField> field, FilterDefinition <TModel> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_collection.Distinct(field, filter, options, cancellationToken));
 }
Ejemplo n.º 12
0
 public IAsyncCursor <TField> Distinct <TField>(IClientSessionHandle session, FieldDefinition <T, TField> field, FilterDefinition <T> filter, DistinctOptions options = null, CancellationToken cancellationToken = new CancellationToken()) =>
 _base.Distinct(session, field, filter, options, cancellationToken);
Ejemplo n.º 13
0
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(FieldDefinition <TModel, TField> field, FilterDefinition <TModel> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken)) => _collection.DistinctAsync(field, filter, options, cancellationToken);
Ejemplo n.º 14
0
 /// <inheritdoc/>
 public IAsyncCursor <TField> Distinct <TField>(IClientSessionHandle session, FieldDefinition <T, TField> field, FilterDefinition <T> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_actualCollection.Distinct(session, field, filter, options, cancellationToken));
 }
Ejemplo n.º 15
0
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(FieldDefinition <TDocument, TField> field, FilterDefinition <TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
 => _collection.DistinctAsync(_getSession(), field, filter, options, cancellationToken);
Ejemplo n.º 16
0
        public IAsyncCursor <TField> Distinct <TDocument, TField>(string tableName, FieldDefinition <TDocument, TField> field, FilterDefinition <TDocument> filter = null, DistinctOptions options = null) where TDocument : class
        {
            IMongoCollection <TDocument> collection = db.GetCollection <TDocument>(tableName);

            if (filter == null)
            {
                return(collection.DistinctAsync <TField>(field, new BsonDocument(), options).Result);
            }
            return(collection.DistinctAsync <TField>(field, filter, options).Result);
        }
Ejemplo n.º 17
0
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(IClientSessionHandle session, FieldDefinition <TDocument, TField> field, FilterDefinition <TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
 {
     throw new NotImplementedException();
 }
 public IAsyncCursor <TField> Distinct <TField>(FieldDefinition <T, TField> field, FilterDefinition <T> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 19
0
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(IClientSessionHandle session, FieldDefinition <TModel, TField> field, FilterDefinition <TModel> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_collection.DistinctAsync(session, field, filter, options, cancellationToken));
 }
Ejemplo n.º 20
0
        public static List <string> Distinct <T>(string token, string collectionName, string field, FilterDefinition <BsonDocument> filter, DistinctOptions options = null)
        {
            var request = new Distinct
            {
                CollectionName  = collectionName,
                DistinctOptions = options,
                Filter          = filter.ToJson(),
                Field           = field,
                OutputMode      = JsonOutputMode.Strict,
                CultureCode     = CultureInfo.CurrentCulture.Name
            };

            var response = Send <DistinctResponse>("entities/" + collectionName + "/distinct", request, "POST");

            if (response != null)
            {
                return(response.Result);
            }
            return(new List <string>());
        }
Ejemplo n.º 21
0
 public Task <IAsyncCursor <TField> > DistinctAsync <TField>(FieldDefinition <T, TField> field, FilterDefinition <T> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_Repository.DistinctAsync(field, filter, options, cancellationToken));
 }
Ejemplo n.º 22
0
 public virtual IAsyncCursor <TField> Distinct <TField>(FieldDefinition <TVal, TField> field, FilterDefinition <TVal> filter, DistinctOptions options = null, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();