コード例 #1
0
        public override string Download(long userid)
        {
            var api_path = "https://api.twitter.com/1.1/users/show.json?user_id={0}&include_entities={1}";
            string query = string.Format(api_path, userid, true);

            IMongoClient mclient = new MongoClient();
            IMongoDatabase mdb = mclient.GetDatabase("twitter");
            var collection = mdb.GetCollection<BsonDocument>("users");

            try
            {
                _log.Info("Getting profile info for user:{0} ...", userid);
                var jsonObject = TwitterDownloader.ExecuteJsonGETQuery(query);
                var filter = Builders<BsonDocument>.Filter.Eq("id", userid);
                var option = new FindOneAndReplaceOptions<BsonDocument>();
                option.IsUpsert = true;
                BsonDocument doc = BsonDocument.Parse(jsonObject);
                collection.FindOneAndReplaceAsync(filter, doc, option).Wait();
                return doc["screen_name"].AsString;
            }
            catch (Exception ex)
            {
                string msg = "Error trying to download profile for user:{0}";
                msg = string.Format(msg, userid);
                throw new Exception(msg, ex);
            }
        }
コード例 #2
0
 public TProjection FindOneAndReplace <TProjection>(IClientSessionHandle session, FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default)
 {
     throw new NotImplementedException();
 }
コード例 #3
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(Task.FromResult(FindOneAndReplace(filter, replacement, options, cancellationToken)));
 }
コード例 #4
0
 /// <inheritdoc/>
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(IClientSessionHandle session, FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
コード例 #5
0
 public static T FindOneAndReplace <T>(string collectionName, Expression <Func <T, bool> > filter, T document, FindOneAndReplaceOptions <BsonDocument> findOneAndReplaceOptions = null, string schemaId = "", Notification notification = null)
 {
     return(FindOneAndReplace(collectionName, new ExpressionFilterDefinition <T>(filter), document, findOneAndReplaceOptions, schemaId, notification));
 }
コード例 #6
0
        public static T FindOneAndReplace <T>(string token, string collectionName, FilterDefinition <T> filter, T entity, FindOneAndReplaceOptions <T> findOneAndReplaceOptions = null, Notification notification = null)
        {
            if (findOneAndReplaceOptions == null)
            {
                findOneAndReplaceOptions = new FindOneAndReplaceOptions <T>
                {
                    IsUpsert       = true,
                    ReturnDocument = ReturnDocument.After
                };
            }

            var request = new FindOneAndReplace
            {
                CollectionName           = collectionName,
                Filter                   = filter.ToJson(),
                FindOneAndReplaceOptions = findOneAndReplaceOptions.ToBson(),
                Document                 = entity.ToJson(),
                Notification             = notification,
                OutputMode               = JsonOutputMode.Strict,
                CultureCode              = CultureInfo.CurrentCulture.Name
            };

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

            if (response != null && response.Result.Any())
            {
                var documentAsEntity = BsonSerializer.Deserialize <T>(response.Result);
                return(documentAsEntity);
            }
            return(default(T));
        }
コード例 #7
0
ファイル: MongoAccess.cs プロジェクト: youlin1210/MySample
 public TDocument FindOneAndReplace <TDocument>(string tableName, FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TDocument> options = null) where TDocument : class
 {
     return(FindOneAndReplaceAsync <TDocument, TDocument>(tableName, filter, replacement, options).Result);
 }
コード例 #8
0
        public override TProjection FindOneAndReplace <TProjection>(FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            var documentToDelete = Filter(filter).FirstOrDefault();

            if (documentToDelete == null)
            {
                return(default(TProjection));
            }

            _documents.Remove(documentToDelete);

            var documentToAdd = SerializeDocument(replacement);

            _documents.Add(documentToAdd);

            var projectedDocument = Project(new[] { documentToDelete }, options?.Projection).Single();

            return(projectedDocument);
        }
コード例 #9
0
        /// <summary>
        ///     Used to asynchronously update a record in database. This replaces entire matched document.
        ///     Consider using UpdateOneAsync instead.
        ///     This method is a wrapper for IMongoCollection.FindOneAndReplaceAsync
        /// </summary>
        public async Task <TEntity> UpdateAsync(TEntity updatedEntity, Expression <Func <TEntity, bool> > filter, FindOneAndReplaceOptions <TEntity> options = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            TEntity oldEntity = await mongoCollection.FindOneAndReplaceAsync <TEntity>(
                filter,
                updatedEntity,
                options,
                cancellationToken
                );

            return(oldEntity);
        }
コード例 #10
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(collection.FindOneAndReplaceAsync(filter, replacement, options, cancellationToken));
 }
コード例 #11
0
 public virtual Task <TProjection> FindOneAndReplaceAsync <TProjection>(IClientSessionHandle session, FilterDefinition <TVal> filter, TVal replacement, FindOneAndReplaceOptions <TVal, TProjection> options = null, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();
コード例 #12
0
 public virtual TProjection FindOneAndReplace <TProjection>(FilterDefinition <TVal> filter, TVal replacement, FindOneAndReplaceOptions <TVal, TProjection> options = null, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();
コード例 #13
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <AnimatedImage> filter, AnimatedImage replacement, FindOneAndReplaceOptions <AnimatedImage, TProjection> options = null, CancellationToken cancellationToken = default)
 {
     throw new NotImplementedException();
 }
コード例 #14
0
 public TProjection FindOneAndReplace <TProjection>(FilterDefinition <Vehicle> filter, Vehicle replacement, FindOneAndReplaceOptions <Vehicle, TProjection> options = null, CancellationToken cancellationToken = default)
 {
     throw new NotImplementedException();
 }
コード例 #15
0
 public Task <T> FindOneAndReplaceAsync(string collectionName, Expression <Func <T, bool> > filter, T replacement, FindOneAndReplaceOptions <T> options = null, CancellationToken cancellationToken = default)
 {
     return(infrastructure.Exec(database =>
     {
         return database.GetCollection <T>(collectionName).FindOneAndReplaceAsync(filter, replacement, options, cancellationToken);
     }));
 }
コード例 #16
0
 public Task <T> FindOneAndReplaceAsync(Expression <Func <T, bool> > filter, T replacement, FindOneAndReplaceOptions <T> options = null, CancellationToken cancellationToken = default)
 {
     return(FindOneAndReplaceAsync(collectionTypeName, filter, replacement, options, cancellationToken));
 }
コード例 #17
0
 public async Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = new CancellationToken()) =>
 await _semaphore.AddRequest(_base.FindOneAndReplaceAsync(filter, replacement, options, cancellationToken));
コード例 #18
0
 /// <inheritdoc/>
 public TProjection FindOneAndReplace <TProjection>(FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_actualCollection.FindOneAndReplace(filter, replacement, options, cancellationToken));
 }
コード例 #19
0
ファイル: MongoAccess.cs プロジェクト: youlin1210/MySample
        public async Task <TProjection> FindOneAndReplaceAsync <TDocument, TProjection>(string tableName, FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options = null) where TDocument : class
        {
            IMongoCollection <TDocument> collection = db.GetCollection <TDocument>(tableName);

            return(await collection.FindOneAndReplaceAsync <TProjection>(filter, replacement, options));
        }
コード例 #20
0
 /// <inheritdoc/>
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(IClientSessionHandle session, FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_actualCollection.FindOneAndReplaceAsync(session, filter, replacement, options, cancellationToken));
 }
コード例 #21
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     throw new NotImplementedException();
 }
コード例 #22
0
 public TProjection FindOneAndReplace <TProjection>(IClientSessionHandle session, FilterDefinition <TModel> filter, TModel replacement, FindOneAndReplaceOptions <TModel, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken)) => _collection.FindOneAndReplace(session, filter, replacement, options, cancellationToken);
コード例 #23
0
        public static T FindOneAndReplace <T>(string collectionName, FilterDefinition <T> filter, T document, FindOneAndReplaceOptions <BsonDocument> findOneAndReplaceOptions = null, string schemaId = "", Notification notification = null)
        {
            var request = new FindOneAndReplace
            {
                CollectionName           = collectionName,
                OutputMode               = JsonOutputMode.Strict,
                Filter                   = filter.ToJson(),
                Notification             = notification,
                Document                 = document.ToBsonDocument().ToJson(),
                FindOneAndReplaceOptions = findOneAndReplaceOptions
            };

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

            if (response?.Result == null)
            {
                return(default(T));
            }
            var documentAsEntity = BsonSerializer.Deserialize <T>(response.Result);

            return(documentAsEntity);
        }
コード例 #24
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <TModel> filter, TModel replacement, FindOneAndReplaceOptions <TModel, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken)) => _collection.FindOneAndReplaceAsync(filter, replacement, options, cancellationToken);
コード例 #25
0
 /// <inheritdoc/>
 public TProjection FindOneAndReplace <TProjection>(FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
コード例 #26
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <InformationEntry> filter, InformationEntry replacement, FindOneAndReplaceOptions <InformationEntry, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     throw new System.NotImplementedException();
 }
コード例 #27
0
 public abstract TProjection FindOneAndReplace <TProjection>(FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options             = null, CancellationToken cancellationToken = default(CancellationToken));
コード例 #28
0
 public Task <TProjection> FindOneAndReplaceAsync <TProjection>(FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default)
 {
     throw new System.NotImplementedException();
 }
コード例 #29
0
 public TProjection FindOneAndReplace <TProjection>(FilterDefinition <TDocument> filter, TDocument replacement, FindOneAndReplaceOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default)
 => _collection.FindOneAndReplace(_getSession(), filter, replacement, options, cancellationToken);
コード例 #30
0
 public TProjection FindOneAndReplace <TProjection>(IClientSessionHandle session, FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T, TProjection> options = null, CancellationToken cancellationToken = new CancellationToken()) =>
 _base.FindOneAndReplace(session, filter, replacement, options, cancellationToken);
コード例 #31
0
        public void FindOneAndReplaceAsync_with_an_expression_and_result_options_should_call_collection_with_the_correct_filter(
            [Values(false, true)] bool async)
        {
            var subject = CreateSubject();
            var replacement = new Person();
            var options = new FindOneAndReplaceOptions<Person, BsonDocument>();

            if (async)
            {
                subject.FindOneAndReplaceAsync(x => x.FirstName == "Jack", replacement, options);

                subject.Received().FindOneAndReplaceAsync<BsonDocument>(Arg.Any<ExpressionFilterDefinition<Person>>(), replacement, options, default(CancellationToken));
            }
            else
            {
                subject.FindOneAndReplace(x => x.FirstName == "Jack", replacement, options);

                subject.Received().FindOneAndReplace<BsonDocument>(Arg.Any<ExpressionFilterDefinition<Person>>(), replacement, options, default(CancellationToken));
            }
        }
コード例 #32
0
 public Task <T> FindOneAndReplaceAsync(FilterDefinition <T> filter, T replacement, FindOneAndReplaceOptions <T> options = null, CancellationToken cancellationToken = default)
 {
     return(FindOneAndReplaceAsync(collectionTypeName, filter, replacement, options, cancellationToken));
 }