Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / BatchWriter.cs / 1305376 / BatchWriter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a base class for DataWeb services. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Serializers { #region Namespaces. using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; #endregion Namespaces. ////// Static helper class to write responses for batch requests /// internal static class BatchWriter { ////// Writes the start of the changeset response /// /// writer to which the response needs to be written /// batch boundary /// changeset boundary internal static void WriteStartBatchBoundary(StreamWriter writer, string batchBoundary, string changesetBoundary) { WriterStartBoundary(writer, batchBoundary); writer.WriteLine( "{0}: {1}; {2}={3}", XmlConstants.HttpContentType, XmlConstants.MimeMultiPartMixed, XmlConstants.HttpMultipartBoundary, changesetBoundary); writer.WriteLine(); // NewLine to seperate the header from message } ///Write the boundary and header information. /// writer to which the response needs to be written /// host containing the value of the response headers /// content-id string that needs to be written /// boundary string that needs to be written internal static void WriteBoundaryAndHeaders(StreamWriter writer, IDataServiceHost2 host, string contentId, string boundary) { Debug.Assert(writer != null, "writer != null"); Debug.Assert(host != null, "host != null"); Debug.Assert(boundary != null, "boundary != null"); WriterStartBoundary(writer, boundary); // First write the headers to indicate that the payload below is a http request WriteHeaderValue(writer, XmlConstants.HttpContentType, XmlConstants.MimeApplicationHttp); WriteHeaderValue(writer, XmlConstants.HttpContentTransferEncoding, XmlConstants.BatchRequestContentTransferEncoding); writer.WriteLine(); // NewLine to seperate the batch headers from http headers // In error cases, we create a dummy host, which has no request header information. // Hence we need to handle the case here. writer.WriteLine("{0} {1} {2}", XmlConstants.HttpVersionInBatching, host.ResponseStatusCode, WebUtil.GetStatusCodeText(host.ResponseStatusCode)); if (null != contentId) { WriteHeaderValue(writer, XmlConstants.HttpContentID, contentId); } System.Net.WebHeaderCollection responseHeaders = host.ResponseHeaders; foreach (string header in responseHeaders.AllKeys) { WriteHeaderValue(writer, header, responseHeaders[header]); } writer.WriteLine(); // NewLine to seperate the header from message } ////// Write the end boundary /// /// writer to which the response needs to be written /// end boundary string. internal static void WriteEndBoundary(StreamWriter writer, string boundary) { writer.WriteLine("--{0}--", boundary); } ////// Write the start boundary /// /// writer to which the response needs to be written /// boundary string. private static void WriterStartBoundary(StreamWriter writer, string boundary) { writer.WriteLine("--{0}", boundary); } ////// Write the header name and value /// /// writer to which the response needs to be written /// name of the header whose value needs to be written. /// value of the header that needs to be written. private static void WriteHeaderValue(StreamWriter writer, string headerName, object headerValue) { if (headerValue != null) { string text = Convert.ToString(headerValue, System.Globalization.CultureInfo.InvariantCulture); if (!String.IsNullOrEmpty(text)) { writer.WriteLine("{0}: {1}", headerName, text); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Cursors.cs
- WebServiceReceiveDesigner.cs
- OdbcStatementHandle.cs
- Debug.cs
- DrawingContextWalker.cs
- StringInfo.cs
- ServicePrincipalNameElement.cs
- Win32Interop.cs
- MaterializeFromAtom.cs
- TextBounds.cs
- HttpCacheVaryByContentEncodings.cs
- HighlightVisual.cs
- dataSvcMapFileLoader.cs
- BaseDataBoundControl.cs
- AuthenticatedStream.cs
- Point3DAnimationUsingKeyFrames.cs
- IdentityHolder.cs
- Label.cs
- X509SecurityTokenAuthenticator.cs
- SoapHttpTransportImporter.cs
- hresults.cs
- XmlDigitalSignatureProcessor.cs
- PathHelper.cs
- IndexedGlyphRun.cs
- ControlType.cs
- AsyncInvokeOperation.cs
- ResourceAssociationSetEnd.cs
- CardSpaceSelector.cs
- RightNameExpirationInfoPair.cs
- SafeNativeMethods.cs
- TileModeValidation.cs
- IconHelper.cs
- SingleKeyFrameCollection.cs
- MimeObjectFactory.cs
- ComponentSerializationService.cs
- FormViewPageEventArgs.cs
- CodeAttributeArgument.cs
- Not.cs
- UnsafeNativeMethodsMilCoreApi.cs
- WebDisplayNameAttribute.cs
- DoubleAnimationUsingKeyFrames.cs
- AxWrapperGen.cs
- UIElementPropertyUndoUnit.cs
- TransformerConfigurationWizardBase.cs
- ZoneIdentityPermission.cs
- IdentityNotMappedException.cs
- EnumerableRowCollectionExtensions.cs
- AvTraceFormat.cs
- TextPointer.cs
- SafeRightsManagementHandle.cs
- BindStream.cs
- FramingChannels.cs
- DecoderBestFitFallback.cs
- HttpCacheVary.cs
- Attachment.cs
- EffectiveValueEntry.cs
- UrlAuthorizationModule.cs
- GlyphRun.cs
- SmiEventSink.cs
- Attributes.cs
- ClientScriptManager.cs
- SymmetricSecurityBindingElement.cs
- OleAutBinder.cs
- KoreanCalendar.cs
- InheritanceService.cs
- ConsoleTraceListener.cs
- MexBindingBindingCollectionElement.cs
- DataSourceXmlElementAttribute.cs
- HashRepartitionEnumerator.cs
- ToolStripDropDownMenu.cs
- StringHandle.cs
- AnnotationComponentChooser.cs
- ZipIOLocalFileBlock.cs
- BinaryWriter.cs
- PeerToPeerException.cs
- TemplateBindingExpressionConverter.cs
- DataGridSortCommandEventArgs.cs
- FileDialog_Vista_Interop.cs
- HostingEnvironmentSection.cs
- HttpHeaderCollection.cs
- UpWmlPageAdapter.cs
- WebZone.cs
- DefaultMergeHelper.cs
- KeyPressEvent.cs
- TreeNodeMouseHoverEvent.cs
- GroupItemAutomationPeer.cs
- HelpInfo.cs
- _TransmitFileOverlappedAsyncResult.cs
- EncryptedData.cs
- XmlCustomFormatter.cs
- EntityKeyElement.cs
- QuotedPrintableStream.cs
- PopupEventArgs.cs
- VersionConverter.cs
- ProfileBuildProvider.cs
- SqlServer2KCompatibilityCheck.cs
- XMLSyntaxException.cs
- TheQuery.cs
- EditorPartChrome.cs
- OverflowException.cs