コード例 #1
0
        /// <inheritdoc />
        public virtual Task InsertManyAsync(IEnumerable <TDocument> documents, InsertManyOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            Ensure.IsNotNull(documents, "documents");

            var models = documents.Select(x => new InsertOneModel <TDocument>(x));
            BulkWriteOptions bulkWriteOptions = options == null ? null : new BulkWriteOptions {
                IsOrdered = options.IsOrdered
            };

            return(BulkWriteAsync(models, bulkWriteOptions, cancellationToken));
        }
コード例 #2
0
        private Task InsertManyAsync(IEnumerable <TDocument> documents, InsertManyOptions options, Func <IEnumerable <WriteModel <TDocument> >, BulkWriteOptions, Task> bulkWriteAsync)
        {
            Ensure.IsNotNull(documents, nameof(documents));

            var models           = documents.Select(x => new InsertOneModel <TDocument>(x));
            var bulkWriteOptions = options == null ? null : new BulkWriteOptions
            {
                BypassDocumentValidation = options.BypassDocumentValidation,
                IsOrdered = options.IsOrdered
            };

            return(bulkWriteAsync(models, bulkWriteOptions));
        }
コード例 #3
0
        /// <inheritdoc />
        public virtual void InsertMany(IEnumerable <TDocument> documents, InsertManyOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            Ensure.IsNotNull(documents, nameof(documents));

            var models = documents.Select(x => new InsertOneModel <TDocument>(x));
            BulkWriteOptions bulkWriteOptions = options == null ? null : new BulkWriteOptions
            {
                BypassDocumentValidation = options.BypassDocumentValidation,
                IsOrdered = options.IsOrdered
            };

            BulkWrite(models, bulkWriteOptions, cancellationToken);
        }
コード例 #4
0
        private void InsertMany(IEnumerable <TDocument> documents, InsertManyOptions options, Action <IEnumerable <WriteModel <TDocument> >, BulkWriteOptions> bulkWrite)
        {
            Ensure.IsNotNull(documents, nameof(documents));

            var models = documents.Select(x => new InsertOneModel <TDocument>(x));
            BulkWriteOptions bulkWriteOptions = options == null ? null : new BulkWriteOptions
            {
                BypassDocumentValidation = options.BypassDocumentValidation,
                IsOrdered = options.IsOrdered
            };

            bulkWrite(models, bulkWriteOptions);
        }
コード例 #5
0
        public async Task Execute()
        {
            Category<ObjectId> category = SelectCategory();
            if (category == null)
            {
                _logger.Error(InnerMessages.CategoryMissing);
                return;
            }

            List<Post<ObjectId>> posts = new List<Post<ObjectId>>();
            List<PostEssentials> postEssencials = ContentProvider.GetPosts(_settings.PostContentPath);

            foreach (PostEssentials item in postEssencials)
            {
                if (item.ShortContent == null)
                {
                    item.ShortContent =
                        ContentMinifier.Minify(item.FullContent, 250, ContentMinifyMode.ToClosestDot);
                }

                var post = new Post<ObjectId>()
                {
                    ContentID = ObjectId.GenerateNewId(),
                    CategoryID = _settings.CategoryID,
                    AuthorID = _settings.Author.ID,
                    AuthorName = _settings.Author.Name,
                    Title = item.Title,
                    Url = Translit.RussianToTranslitUrl(item.Title),
                    CommentsCount = 0,
                    ViewsCount = 0,
                    FullContent = item.FullContent,
                    ShortContent = item.ShortContent,
                    HasImage = true,
                    IsPublished = true,
                    AddTimeUtc = DateTime.UtcNow,
                    PublishTimeUtc = DateTime.UtcNow,
                    IsIndexed = false
                };
                post.CreateUpdateNonce();
                posts.Add(post);

                if (item.ImageFile != null)
                {
                    using (Stream file = item.ImageFile.OpenRead())
                    {
                        PipelineResult imageResult = await _previewQueries.CreateStaticImage(file, post.Url);
                    }
                }

                await UploadContentImages(post);
            }

            var insertOptions = new InsertManyOptions() { IsOrdered = false };
            await _context.Posts.InsertManyAsync(posts, insertOptions);

        }
コード例 #6
0
 /// <inheritdoc />
 public virtual Task InsertManyAsync(IClientSessionHandle session, IEnumerable <TDocument> documents, InsertManyOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(InsertManyAsync(documents, options, (requests, bulkWriteOptions) => BulkWriteAsync(session, requests, bulkWriteOptions, cancellationToken)));
 }
コード例 #7
0
 /// <inheritdoc />
 public virtual void InsertMany(IClientSessionHandle session, IEnumerable <TDocument> documents, InsertManyOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     InsertMany(documents, options, (requests, bulkWriteOptions) => BulkWrite(session, requests, bulkWriteOptions, cancellationToken));
 }
コード例 #8
0
 public static Task InsertManyAsync <T, TK>(this IMongoCollection <T> instance, IEnumerable <T> documents, InsertManyOptions options = null, CancellationToken cancellation = default)
     where T : DocumentBase <TK>
 {
     return(instance.InsertManyAsync(documents, options, cancellation));
 }
コード例 #9
0
ファイル: MongodbExtension.cs プロジェクト: fryg123/ColorCMS
 public static void AddMany <TDocument>(this IMongoCollection <TDocument> collection, IEnumerable <TDocument> documents, InsertManyOptions options = null)
 {
     collection.InsertMany(documents, options);
 }