// private methods private Type1CommandMessageSection <BsonDocument> CreateSubject( string identifier = null, IBatchableSource <BsonDocument> documents = null, IBsonSerializer <BsonDocument> documentSerializer = null) { identifier = identifier ?? "identifier"; documents = documents ?? new BatchableSource <BsonDocument>(new List <BsonDocument>(), canBeSplit: false); documentSerializer = documentSerializer ?? new BsonDocumentSerializer(); return(new Type1CommandMessageSection <BsonDocument>(identifier, documents, documentSerializer)); }
// private methods private Type1CommandMessageSection CreateSubject( string identifier = null, IBatchableSource <BsonDocument> documents = null, IBsonSerializer <BsonDocument> documentSerializer = null, IElementNameValidator elementNameValidator = null, int?maxBatchCount = null, int?maxDocumentSize = null) { identifier = identifier ?? "identifier"; documents = documents ?? new BatchableSource <BsonDocument>(new List <BsonDocument>(), canBeSplit: false); documentSerializer = documentSerializer ?? new BsonDocumentSerializer(); elementNameValidator = elementNameValidator ?? NoOpElementNameValidator.Instance; return(new Type1CommandMessageSection <BsonDocument>(identifier, documents, documentSerializer, elementNameValidator, maxBatchCount, maxDocumentSize)); }
// constructors /// <summary> /// Initializes a new instance of the <see cref="Type1CommandMessageSection{TDocument}" /> class. /// </summary> /// <param name="identifier">The identifier.</param> /// <param name="documents">The documents.</param> /// <param name="documentSerializer">The document serializer.</param> /// <param name="elementNameValidator">The element name validator.</param> /// <param name="maxBatchCount">The maximum batch count.</param> /// <param name="maxDocumentSize">Maximum size of the document.</param> public Type1CommandMessageSection( string identifier, IBatchableSource <object> documents, IBsonSerializer documentSerializer, IElementNameValidator elementNameValidator, int?maxBatchCount, int?maxDocumentSize) { _identifier = Ensure.IsNotNull(identifier, nameof(identifier)); _documents = Ensure.IsNotNull(documents, nameof(documents)); _documentSerializer = Ensure.IsNotNull(documentSerializer, nameof(documentSerializer)); _elementNameValidator = Ensure.IsNotNull(elementNameValidator, nameof(elementNameValidator)); _maxBatchCount = Ensure.IsNullOrGreaterThanZero(maxBatchCount, nameof(maxBatchCount)); _maxDocumentSize = Ensure.IsNullOrGreaterThanZero(maxDocumentSize, nameof(maxDocumentSize)); }
private bool BatchEquals(IBatchableSource <object> x, IBatchableSource <object> y) { return (x.Count == y.Count && x.Items.Skip(x.Offset).Take(x.Count).SequenceEqual(y.Items.Skip(y.Offset).Take(y.Count))); }
// constructors /// <summary> /// Initializes a new instance of the <see cref="Type1CommandMessageSection{TDocument}" /> class. /// </summary> /// <param name="identifier">The identifier.</param> /// <param name="documents">The documents.</param> /// <param name="documentSerializer">The document serializer.</param> public Type1CommandMessageSection(string identifier, IBatchableSource <object> documents, IBsonSerializer documentSerializer) { _identifier = Ensure.IsNotNull(identifier, nameof(identifier)); _documents = Ensure.IsNotNull(documents, nameof(documents)); _documentSerializer = Ensure.IsNotNull(documentSerializer, nameof(documentSerializer)); }