Ejemplo n.º 1
0
        /// <summary>
        /// Verifies that calling WriteStart is valid.
        /// </summary>
        /// <param name="synchronousCall">true if the call is to be synchronous; false otherwise.</param>
        /// <param name="collectionStart">The <see cref="ODataCollectionStart"/> representing the collection.</param>
        private void VerifyCanWriteStart(bool synchronousCall, ODataCollectionStart collectionStart)
        {
            ExceptionUtils.CheckArgumentNotNull(collectionStart, "collection");

            this.VerifyNotDisposed();
            this.VerifyCallAllowed(synchronousCall);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Start writing a collection - implementation of the actual functionality.
        /// </summary>
        /// <param name="collectionStart">The <see cref="ODataCollectionStart"/> representing the collection.</param>
        private void WriteStartImplementation(ODataCollectionStart collectionStart)
        {
            this.StartPayloadInStartState();
            this.EnterScope(CollectionWriterState.Collection, collectionStart);
            this.InterceptException(() =>
            {
                if (this.expectedItemType == null)
                {
                    this.collectionValidator = new CollectionWithoutExpectedTypeValidator(/*expectedItemTypeName*/ null);
                }

                this.StartCollection(collectionStart);
            });
        }
        /// <summary>
        /// Asynchronously starts writing a collection - implementation of the actual functionality.
        /// </summary>
        /// <param name="collectionStart">The <see cref="ODataCollectionStart"/> representing the collection.</param>
        /// <returns>A task that represents the asynchronous write operation.</returns>
        private async Task WriteStartImplementationAsync(ODataCollectionStart collectionStart)
        {
            await this.StartPayloadInStartStateAsync()
            .ConfigureAwait(false);

            this.EnterScope(CollectionWriterState.Collection, collectionStart);
            await this.InterceptExceptionAsync(async() =>
            {
                if (this.expectedItemType == null)
                {
                    this.collectionValidator = new CollectionWithoutExpectedTypeValidator(/*expectedItemTypeName*/ null);
                }

                await this.StartCollectionAsync(collectionStart)
                .ConfigureAwait(false);
            }).ConfigureAwait(false);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Start writing a collection.
 /// </summary>
 /// <param name="collectionStart">The <see cref="ODataCollectionStart"/> representing the collection.</param>
 protected abstract void StartCollection(ODataCollectionStart collectionStart);
Ejemplo n.º 5
0
 /// <summary>
 /// Asynchronously start writing a collection.
 /// </summary>
 /// <param name="collection">The <see cref="ODataCollectionStart"/> representing the collection.</param>
 /// <returns>A task instance that represents the asynchronous write operation.</returns>
 public sealed override Task WriteStartAsync(ODataCollectionStart collection)
 {
     this.VerifyCanWriteStart(false, collection);
     return(TaskUtils.GetTaskForSynchronousOperation(() => this.WriteStartImplementation(collection)));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Start writing a collection.
 /// </summary>
 /// <param name="collectionStart">The <see cref="ODataCollectionStart"/> representing the collection.</param>
 public sealed override void WriteStart(ODataCollectionStart collectionStart)
 {
     this.VerifyCanWriteStart(true, collectionStart);
     this.WriteStartImplementation(collectionStart);
 }
Ejemplo n.º 7
0
 /// <summary>Asynchronously start writing a collection.</summary>
 /// <returns>A task instance that represents the asynchronous write operation.</returns>
 /// <param name="collectionStart">The <see cref="T:Microsoft.OData.ODataCollectionStart" /> representing the collection.</param>
 public abstract Task WriteStartAsync(ODataCollectionStart collectionStart);
Ejemplo n.º 8
0
 /// <summary>Start writing a collection.</summary>
 /// <param name="collectionStart">The <see cref="T:Microsoft.OData.ODataCollectionStart" /> representing the collection.</param>
 public abstract void WriteStart(ODataCollectionStart collectionStart);
 /// <summary>
 /// Asynchronously start writing a collection.
 /// </summary>
 /// <param name="collectionStart">The <see cref="ODataCollectionStart"/> representing the collection.</param>
 /// <returns>A task that represents the asynchronous write operation.</returns>
 protected abstract Task StartCollectionAsync(ODataCollectionStart collectionStart);
 /// <summary>
 /// Asynchronously start writing a collection.
 /// </summary>
 /// <param name="collection">The <see cref="ODataCollectionStart"/> representing the collection.</param>
 /// <returns>A task instance that represents the asynchronous write operation.</returns>
 public sealed override async Task WriteStartAsync(ODataCollectionStart collection)
 {
     this.VerifyCanWriteStart(false, collection);
     await this.WriteStartImplementationAsync(collection)
     .ConfigureAwait(false);
 }
 /// <summary>
 /// Provide additional serialization information to the <see cref="ODataCollectionWriter"/> for <paramref name="collectionStart"/>.
 /// </summary>
 /// <param name="collectionStart">The instance to set the serialization info.</param>
 /// <param name="serializationInfo">The serialization info to set.</param>
 public static void SetSerializationInfo(this ODataCollectionStart collectionStart, ODataCollectionStartSerializationInfo serializationInfo)
 {
     ExceptionUtils.CheckArgumentNotNull(collectionStart, "collectionStart");
     collectionStart.SerializationInfo = serializationInfo;
 }