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
- UpdatePanel.cs
- TextEffectResolver.cs
- RowUpdatedEventArgs.cs
- DataObjectAttribute.cs
- FrameDimension.cs
- EntityObject.cs
- GroupJoinQueryOperator.cs
- BufferModeSettings.cs
- Paragraph.cs
- EnterpriseServicesHelper.cs
- CommandHelpers.cs
- KeyedHashAlgorithm.cs
- ImportOptions.cs
- ControlAdapter.cs
- SessionParameter.cs
- XPathParser.cs
- dataprotectionpermissionattribute.cs
- FlowThrottle.cs
- XmlSignatureManifest.cs
- ThaiBuddhistCalendar.cs
- ClientData.cs
- Stackframe.cs
- DeclarativeExpressionConditionDeclaration.cs
- WhitespaceRule.cs
- FragmentQuery.cs
- objectresult_tresulttype.cs
- SecureConversationDriver.cs
- DesignObjectWrapper.cs
- StaticFileHandler.cs
- HtmlInputRadioButton.cs
- AxHost.cs
- ObjectViewEntityCollectionData.cs
- PeerNameRecordCollection.cs
- StaticExtension.cs
- HtmlForm.cs
- PerformanceCounterPermissionEntryCollection.cs
- ToolStripComboBox.cs
- DaylightTime.cs
- FunctionImportMapping.cs
- WCFModelStrings.Designer.cs
- UniqueConstraint.cs
- Geometry3D.cs
- IndexedEnumerable.cs
- DependencyPropertyValueSerializer.cs
- HijriCalendar.cs
- ParallelDesigner.cs
- WebBaseEventKeyComparer.cs
- AccessKeyManager.cs
- ContractReference.cs
- ClassicBorderDecorator.cs
- MenuItem.cs
- DesignRelationCollection.cs
- MarshalByValueComponent.cs
- ArrayElementGridEntry.cs
- CodeConditionStatement.cs
- ConnectionInterfaceCollection.cs
- HttpConfigurationContext.cs
- Reference.cs
- EventSetter.cs
- GZipStream.cs
- TextureBrush.cs
- ProcessModelInfo.cs
- UserControlBuildProvider.cs
- EntityParameterCollection.cs
- Math.cs
- IncomingWebRequestContext.cs
- FreezableDefaultValueFactory.cs
- XmlSchemaComplexContent.cs
- TextBox.cs
- PopupControlService.cs
- Policy.cs
- TextEditorMouse.cs
- MenuEventArgs.cs
- ChangeNode.cs
- Tuple.cs
- ProfileParameter.cs
- ServicesSection.cs
- SimpleBitVector32.cs
- DecoderFallbackWithFailureFlag.cs
- CookielessHelper.cs
- DesigntimeLicenseContext.cs
- ProgressBarRenderer.cs
- HwndHostAutomationPeer.cs
- ColorAnimationUsingKeyFrames.cs
- TokenBasedSetEnumerator.cs
- ObjectCloneHelper.cs
- ProfileGroupSettings.cs
- GrammarBuilderBase.cs
- ItemsPanelTemplate.cs
- CryptographicAttribute.cs
- DataControlFieldCollection.cs
- WSSecurityXXX2005.cs
- BulletChrome.cs
- HierarchicalDataBoundControl.cs
- SerTrace.cs
- HeaderedContentControl.cs
- ValidatorCompatibilityHelper.cs
- WindowExtensionMethods.cs
- TextTreeTextNode.cs
- RemoveStoryboard.cs