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
- BitVec.cs
- TextTreeDeleteContentUndoUnit.cs
- WebPartExportVerb.cs
- EasingKeyFrames.cs
- ContextStack.cs
- TreeBuilder.cs
- BuildProvidersCompiler.cs
- ArrayList.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ImageClickEventArgs.cs
- DiscriminatorMap.cs
- MessageSecurityOverTcpElement.cs
- MemoryFailPoint.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SizeLimitedCache.cs
- WSHttpBinding.cs
- PolygonHotSpot.cs
- FilteredAttributeCollection.cs
- BuilderInfo.cs
- DefaultTraceListener.cs
- TextEffect.cs
- Publisher.cs
- RuntimeWrappedException.cs
- AssemblyResourceLoader.cs
- TraceListener.cs
- GenericAuthenticationEventArgs.cs
- TypeSource.cs
- XmlQueryType.cs
- TableLayout.cs
- UserControlCodeDomTreeGenerator.cs
- DockPattern.cs
- OleDbConnectionInternal.cs
- DataRecordInternal.cs
- AutomationElement.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- StrokeCollectionConverter.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- TextStore.cs
- SafeFileHandle.cs
- SqlUdtInfo.cs
- XamlBrushSerializer.cs
- SettingsPropertyValue.cs
- SendAgentStatusRequest.cs
- TextServicesCompartmentEventSink.cs
- SimpleLine.cs
- MetadataArtifactLoader.cs
- FlowSwitchDesigner.xaml.cs
- XpsFilter.cs
- CollectionViewSource.cs
- RequestQueryParser.cs
- CodeCommentStatement.cs
- ResumeStoryboard.cs
- XmlSchemaComplexContentRestriction.cs
- RequestCachePolicyConverter.cs
- XPathDocumentIterator.cs
- PipeStream.cs
- CircleHotSpot.cs
- ConstructorArgumentAttribute.cs
- Sentence.cs
- RoleBoolean.cs
- X509CertificateClaimSet.cs
- ResourceLoader.cs
- ConsumerConnectionPointCollection.cs
- DispatcherObject.cs
- basenumberconverter.cs
- QueryAccessibilityHelpEvent.cs
- SplitContainer.cs
- FixedSOMTable.cs
- ClassHandlersStore.cs
- ToolBar.cs
- TransformerConfigurationWizardBase.cs
- NavigationEventArgs.cs
- WsdlInspector.cs
- PropertyCollection.cs
- MessageHeaderException.cs
- RSAPKCS1KeyExchangeFormatter.cs
- TimeSpanFormat.cs
- IteratorDescriptor.cs
- UpdatePanelTriggerCollection.cs
- TemplateLookupAction.cs
- CodeLinePragma.cs
- PropertyManager.cs
- SettingsBase.cs
- MultiPageTextView.cs
- InstancePersistence.cs
- SelectorAutomationPeer.cs
- XmlLanguage.cs
- DrawingVisual.cs
- SmiEventStream.cs
- FontClient.cs
- PointCollectionConverter.cs
- CompiledELinqQueryState.cs
- XmlDataProvider.cs
- SweepDirectionValidation.cs
- panel.cs
- TrackingRecord.cs
- DataGridViewCellMouseEventArgs.cs
- LayoutDump.cs
- DateTimeStorage.cs