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
- DSASignatureFormatter.cs
- PaperSource.cs
- CommittableTransaction.cs
- ShadowGlyph.cs
- Vector3DAnimationBase.cs
- OdbcConnectionString.cs
- MetadataSerializer.cs
- SamlAssertionKeyIdentifierClause.cs
- Stackframe.cs
- AliasGenerator.cs
- SqlNamer.cs
- ResourceReferenceKeyNotFoundException.cs
- ActivationServices.cs
- MapPathBasedVirtualPathProvider.cs
- SimpleLine.cs
- Tracking.cs
- DbProviderSpecificTypePropertyAttribute.cs
- WpfXamlType.cs
- TextDecorationUnitValidation.cs
- UrlParameterReader.cs
- PagedDataSource.cs
- ButtonField.cs
- OdbcDataAdapter.cs
- securitycriticaldataClass.cs
- RawAppCommandInputReport.cs
- wpf-etw.cs
- GridView.cs
- SignedInfo.cs
- PropertySegmentSerializationProvider.cs
- OutputCacheSettingsSection.cs
- BaseTemplateParser.cs
- CompiledQueryCacheKey.cs
- UserNameSecurityToken.cs
- RoutedPropertyChangedEventArgs.cs
- AsyncOperation.cs
- TabPanel.cs
- CfgSemanticTag.cs
- ClientTargetCollection.cs
- SerializationSectionGroup.cs
- WinFormsUtils.cs
- connectionpool.cs
- DbDataSourceEnumerator.cs
- Rotation3D.cs
- FolderBrowserDialog.cs
- CatalogZoneAutoFormat.cs
- ThreadInterruptedException.cs
- Parser.cs
- WCFServiceClientProxyGenerator.cs
- DoubleCollection.cs
- Pair.cs
- TileBrush.cs
- GetPageCompletedEventArgs.cs
- LambdaCompiler.Logical.cs
- DocumentPageViewAutomationPeer.cs
- StringAnimationBase.cs
- ShapeTypeface.cs
- regiisutil.cs
- DetailsView.cs
- DSACryptoServiceProvider.cs
- Message.cs
- bidPrivateBase.cs
- FakeModelPropertyImpl.cs
- ContextInformation.cs
- Property.cs
- BitmapEffectOutputConnector.cs
- EntityDataSource.cs
- Section.cs
- IPCCacheManager.cs
- MobileErrorInfo.cs
- ToolStripDropDownButton.cs
- BamlLocalizationDictionary.cs
- SqlGenerator.cs
- RSACryptoServiceProvider.cs
- PasswordDeriveBytes.cs
- ComplexObject.cs
- BindingWorker.cs
- RemoteWebConfigurationHost.cs
- CodeSubDirectoriesCollection.cs
- DispatcherExceptionFilterEventArgs.cs
- PropertyRecord.cs
- CompositeFontFamily.cs
- ElementNotAvailableException.cs
- AttachInfo.cs
- SystemInformation.cs
- Source.cs
- DataBinding.cs
- TextEditorCopyPaste.cs
- HtmlGenericControl.cs
- WebServiceEnumData.cs
- DrawingGroup.cs
- AuthenticationConfig.cs
- FunctionParameter.cs
- ScrollPattern.cs
- ContentWrapperAttribute.cs
- SHA384Managed.cs
- CodeCastExpression.cs
- WindowsClaimSet.cs
- StateFinalizationDesigner.cs
- PTConverter.cs
- AutoResizedEvent.cs