Esempio n. 1
0
 internal ODataBatchWriter(ODataRawOutputContext rawOutputContext, string batchBoundary)
 {
     ExceptionUtils.CheckArgumentNotNull<string>(batchBoundary, "batchBoundary");
     this.rawOutputContext = rawOutputContext;
     this.batchBoundary = batchBoundary;
     this.urlResolver = new ODataBatchUrlResolver(rawOutputContext.UrlResolver);
     this.rawOutputContext.InitializeTextWriter();
 }
Esempio n. 2
0
 internal ODataBatchWriter(ODataRawOutputContext rawOutputContext, string batchBoundary)
 {
     ExceptionUtils.CheckArgumentNotNull <string>(batchBoundary, "batchBoundary");
     this.rawOutputContext = rawOutputContext;
     this.batchBoundary    = batchBoundary;
     this.urlResolver      = new ODataBatchUrlResolver(rawOutputContext.UrlResolver);
     this.rawOutputContext.InitializeTextWriter();
 }
        /// <summary>
        /// Creates an instance of the output context for the specified format.
        /// </summary>
        /// <param name="format">The format to create the context for.</param>
        /// <param name="message">The message to use.</param>
        /// <param name="encoding">The encoding to use.</param>
        /// <param name="messageWriterSettings">Configuration settings of the OData writer.</param>
        /// <param name="writingResponse">true if writing a response message; otherwise false.</param>
        /// <param name="model">The model to use.</param>
        /// <param name="urlResolver">The optional URL resolver to perform custom URL resolution for URLs written to the payload.</param>
        /// <returns>Task which represents the pending create operation.</returns>
        internal static Task <ODataOutputContext> CreateOutputContextAsync(
            ODataFormat format,
            ODataMessage message,
            Encoding encoding,
            ODataMessageWriterSettings messageWriterSettings,
            bool writingResponse,
            IEdmModel model,
            IODataUrlResolver urlResolver)
        {
            DebugUtils.CheckNoExternalCallers();

            if (format == ODataFormat.Atom)
            {
                return(ODataAtomOutputContext.CreateAsync(
                           format,
                           message,
                           encoding,
                           messageWriterSettings,
                           writingResponse,
                           model,
                           urlResolver));
            }

            if (format == ODataFormat.VerboseJson)
            {
                return(ODataJsonOutputContext.CreateAsync(
                           format,
                           message,
                           encoding,
                           messageWriterSettings,
                           writingResponse,
                           model,
                           urlResolver));
            }

            //// Metadata output is only supported in synchronous operation.

            if (format == ODataFormat.Batch || format == ODataFormat.RawValue)
            {
                return(ODataRawOutputContext.CreateAsync(
                           format,
                           message,
                           encoding,
                           messageWriterSettings,
                           writingResponse,
                           model,
                           urlResolver));
            }

            throw new ODataException(Strings.General_InternalError(InternalErrorCodes.ODataOutputContext_CreateOutputContext_UnrecognizedFormat));
        }
Esempio n. 4
0
 internal static Task <ODataOutputContext> CreateOutputContextAsync(ODataFormat format, ODataMessage message, Encoding encoding, ODataMessageWriterSettings messageWriterSettings, bool writingResponse, IEdmModel model, IODataUrlResolver urlResolver)
 {
     if (format == ODataFormat.Atom)
     {
         return(ODataAtomOutputContext.CreateAsync(format, message, encoding, messageWriterSettings, writingResponse, model, urlResolver));
     }
     if (format == ODataFormat.VerboseJson)
     {
         return(ODataJsonOutputContext.CreateAsync(format, message, encoding, messageWriterSettings, writingResponse, model, urlResolver));
     }
     if ((format != ODataFormat.Batch) && (format != ODataFormat.RawValue))
     {
         throw new ODataException(Microsoft.Data.OData.Strings.General_InternalError(InternalErrorCodes.ODataOutputContext_CreateOutputContext_UnrecognizedFormat));
     }
     return(ODataRawOutputContext.CreateAsync(format, message, encoding, messageWriterSettings, writingResponse, model, urlResolver));
 }
Esempio n. 5
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="rawOutputContext">The output context to write to.</param>
        /// <param name="batchBoundary">The boundary string for the batch structure itself.</param>
        internal ODataBatchWriter(ODataRawOutputContext rawOutputContext, string batchBoundary)
        {
            DebugUtils.CheckNoExternalCallers();
            Debug.Assert(rawOutputContext != null, "rawOutputContext != null");
            Debug.Assert(
                rawOutputContext.MessageWriterSettings.BaseUri == null || rawOutputContext.MessageWriterSettings.BaseUri.IsAbsoluteUri,
                "We should have validated that BaseUri is absolute.");

            ExceptionUtils.CheckArgumentNotNull(batchBoundary, "batchBoundary");

            this.rawOutputContext = rawOutputContext;
            this.batchBoundary = batchBoundary;
            this.urlResolver = new ODataBatchUrlResolver(rawOutputContext.UrlResolver);
            this.rawOutputContext.InitializeTextWriter();
        }