Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Server / System / Data / Services / CachedRequestParams.cs / 2 / CachedRequestParams.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Caches the value of all request headers
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services
{
#region Namespaces.
using System;
using System.Diagnostics;
#endregion Namespaces.
///
/// Enum to represent various http methods
///
internal enum AstoriaVerbs
{
#region Values.
/// Not Initialized.
None,
/// Represents the GET http method.
GET,
/// Represents the PUT http method.
PUT,
/// Represents the POST http method.
POST,
/// Represents the DELETE http method.
DELETE,
/// Represents the MERGE http method.
MERGE
#endregion Values.
}
///
/// Use this class to hold on to request parameters that may be inaccessible after a response writing begins.
///
[DebuggerDisplay("{HttpMethod} {AbsoluteRequestUri}")]
internal class CachedRequestParams
{
#region Fields.
/// Gets the absolute resource upon which to apply the request.
internal readonly Uri AbsoluteRequestUri;
/// Gets the absolute URI to the service.
internal readonly Uri AbsoluteServiceUri;
/// Value for the Accept header.
internal readonly string Accept;
/// Value for the Accept-Charset header.
internal readonly string AcceptCharset;
/// Value of the Content-Type header.
internal readonly string ContentType;
/// HTTP method used for the request.
internal readonly string HttpMethod;
/// Value for the If-Match header.
internal readonly string IfMatch;
/// Value for the If-None-Match header.
internal readonly string IfNoneMatch;
/// Value for the MaxDataServiceVersion header.
internal readonly string MaxVersion;
/// Value for the DataServiceVersion header.
internal readonly string Version;
/// enum indicating http method used on the request,
private AstoriaVerbs astoriaHttpVerb;
#endregion Fields.
#region Constructors.
/// Initializes a new instance.
/// Value for the Accept header.
/// Value for the Accept-Charset header.
/// Value of the Content-Type header.
/// HTTP method used for the request.
/// Value for the If-Match header.
/// Value for the If-None-Match header.
/// Value for the DataServiceVersion header.
/// Value for the MaxDataServiceVersion header.
/// The absolute URI to the resource upon which to apply the request.
/// URI to the service.
internal CachedRequestParams(
string accept,
string acceptCharset,
string contentType,
string httpMethod,
string headerIfMatch,
string headerIfNoneMatch,
string version,
string maxVersion,
Uri absoluteRequestUri,
Uri serviceUri)
{
Debug.Assert(absoluteRequestUri != null, "absoluteRequestUri != null");
Debug.Assert(serviceUri != null, "serviceUri != null");
Debug.Assert(absoluteRequestUri.IsAbsoluteUri, "absoluteRequestUri.IsAbsoluteUri(" + absoluteRequestUri + ")");
Debug.Assert(serviceUri.IsAbsoluteUri, "serviceUri.IsAbsoluteUri(" + serviceUri + ")");
this.Accept = accept;
this.AcceptCharset = acceptCharset;
this.ContentType = contentType;
this.HttpMethod = httpMethod;
this.IfMatch = headerIfMatch;
this.IfNoneMatch = headerIfNoneMatch;
this.AbsoluteRequestUri = absoluteRequestUri;
this.AbsoluteServiceUri = serviceUri;
this.MaxVersion = maxVersion;
this.Version = version;
this.astoriaHttpVerb = AstoriaVerbs.None;
}
#endregion Constructors.
#region Properties.
///
/// Get the enum representing the http method name.
///
/// http method used for the request.
/// enum representing the http method name.
internal AstoriaVerbs AstoriaHttpVerb
{
get
{
if (this.astoriaHttpVerb == AstoriaVerbs.None)
{
if (XmlConstants.HttpMethodGet == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.GET;
}
else if (XmlConstants.HttpMethodPost == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.POST;
}
else if (XmlConstants.HttpMethodPut == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.PUT;
}
else if (XmlConstants.HttpMethodMerge == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.MERGE;
}
else if (XmlConstants.HttpMethodDelete == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.DELETE;
}
else if (String.IsNullOrEmpty(this.HttpMethod))
{
throw new InvalidOperationException(Strings.DataService_EmptyHttpMethod);
}
else
{
// 501: Not Implemented (rather than 405 - Method Not Allowed,
// which implies it was understood and rejected).
throw DataServiceException.CreateMethodNotImplemented(Strings.DataService_NotImplementedException);
}
}
return this.astoriaHttpVerb;
}
}
#endregion Properties.
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Caches the value of all request headers
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services
{
#region Namespaces.
using System;
using System.Diagnostics;
#endregion Namespaces.
///
/// Enum to represent various http methods
///
internal enum AstoriaVerbs
{
#region Values.
/// Not Initialized.
None,
/// Represents the GET http method.
GET,
/// Represents the PUT http method.
PUT,
/// Represents the POST http method.
POST,
/// Represents the DELETE http method.
DELETE,
/// Represents the MERGE http method.
MERGE
#endregion Values.
}
///
/// Use this class to hold on to request parameters that may be inaccessible after a response writing begins.
///
[DebuggerDisplay("{HttpMethod} {AbsoluteRequestUri}")]
internal class CachedRequestParams
{
#region Fields.
/// Gets the absolute resource upon which to apply the request.
internal readonly Uri AbsoluteRequestUri;
/// Gets the absolute URI to the service.
internal readonly Uri AbsoluteServiceUri;
/// Value for the Accept header.
internal readonly string Accept;
/// Value for the Accept-Charset header.
internal readonly string AcceptCharset;
/// Value of the Content-Type header.
internal readonly string ContentType;
/// HTTP method used for the request.
internal readonly string HttpMethod;
/// Value for the If-Match header.
internal readonly string IfMatch;
/// Value for the If-None-Match header.
internal readonly string IfNoneMatch;
/// Value for the MaxDataServiceVersion header.
internal readonly string MaxVersion;
/// Value for the DataServiceVersion header.
internal readonly string Version;
/// enum indicating http method used on the request,
private AstoriaVerbs astoriaHttpVerb;
#endregion Fields.
#region Constructors.
/// Initializes a new instance.
/// Value for the Accept header.
/// Value for the Accept-Charset header.
/// Value of the Content-Type header.
/// HTTP method used for the request.
/// Value for the If-Match header.
/// Value for the If-None-Match header.
/// Value for the DataServiceVersion header.
/// Value for the MaxDataServiceVersion header.
/// The absolute URI to the resource upon which to apply the request.
/// URI to the service.
internal CachedRequestParams(
string accept,
string acceptCharset,
string contentType,
string httpMethod,
string headerIfMatch,
string headerIfNoneMatch,
string version,
string maxVersion,
Uri absoluteRequestUri,
Uri serviceUri)
{
Debug.Assert(absoluteRequestUri != null, "absoluteRequestUri != null");
Debug.Assert(serviceUri != null, "serviceUri != null");
Debug.Assert(absoluteRequestUri.IsAbsoluteUri, "absoluteRequestUri.IsAbsoluteUri(" + absoluteRequestUri + ")");
Debug.Assert(serviceUri.IsAbsoluteUri, "serviceUri.IsAbsoluteUri(" + serviceUri + ")");
this.Accept = accept;
this.AcceptCharset = acceptCharset;
this.ContentType = contentType;
this.HttpMethod = httpMethod;
this.IfMatch = headerIfMatch;
this.IfNoneMatch = headerIfNoneMatch;
this.AbsoluteRequestUri = absoluteRequestUri;
this.AbsoluteServiceUri = serviceUri;
this.MaxVersion = maxVersion;
this.Version = version;
this.astoriaHttpVerb = AstoriaVerbs.None;
}
#endregion Constructors.
#region Properties.
///
/// Get the enum representing the http method name.
///
/// http method used for the request.
/// enum representing the http method name.
internal AstoriaVerbs AstoriaHttpVerb
{
get
{
if (this.astoriaHttpVerb == AstoriaVerbs.None)
{
if (XmlConstants.HttpMethodGet == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.GET;
}
else if (XmlConstants.HttpMethodPost == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.POST;
}
else if (XmlConstants.HttpMethodPut == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.PUT;
}
else if (XmlConstants.HttpMethodMerge == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.MERGE;
}
else if (XmlConstants.HttpMethodDelete == this.HttpMethod)
{
this.astoriaHttpVerb = AstoriaVerbs.DELETE;
}
else if (String.IsNullOrEmpty(this.HttpMethod))
{
throw new InvalidOperationException(Strings.DataService_EmptyHttpMethod);
}
else
{
// 501: Not Implemented (rather than 405 - Method Not Allowed,
// which implies it was understood and rejected).
throw DataServiceException.CreateMethodNotImplemented(Strings.DataService_NotImplementedException);
}
}
return this.astoriaHttpVerb;
}
}
#endregion Properties.
}
}
// 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
- DataGridView.cs
- SubtreeProcessor.cs
- CodeTryCatchFinallyStatement.cs
- CellParaClient.cs
- errorpatternmatcher.cs
- MediaContextNotificationWindow.cs
- HttpBufferlessInputStream.cs
- DbExpressionRules.cs
- SpeechDetectedEventArgs.cs
- EnumerableCollectionView.cs
- SqlConnectionString.cs
- Bezier.cs
- Misc.cs
- SelectorItemAutomationPeer.cs
- HttpResponse.cs
- SqlDataSourceDesigner.cs
- SqlConnectionString.cs
- CodeMethodReturnStatement.cs
- Keyboard.cs
- IndexedString.cs
- CellParaClient.cs
- DataRelation.cs
- Classification.cs
- EventMappingSettings.cs
- Soap12ProtocolImporter.cs
- HttpProcessUtility.cs
- Range.cs
- QilUnary.cs
- Vector3DValueSerializer.cs
- Classification.cs
- TypeGenericEnumerableViewSchema.cs
- TypeSystem.cs
- MsmqDiagnostics.cs
- GenerateDerivedKeyRequest.cs
- ColorContextHelper.cs
- ContextBase.cs
- FlowSwitch.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- StrokeRenderer.cs
- Guid.cs
- ListenerElementsCollection.cs
- InputLangChangeRequestEvent.cs
- PermissionSetTriple.cs
- EncoderParameter.cs
- Literal.cs
- ErasingStroke.cs
- IApplicationTrustManager.cs
- EntityClientCacheKey.cs
- HierarchicalDataSourceControl.cs
- METAHEADER.cs
- InputLangChangeEvent.cs
- FilteredXmlReader.cs
- Int32Animation.cs
- ContentWrapperAttribute.cs
- MD5.cs
- MessageEncodingBindingElementImporter.cs
- ScanQueryOperator.cs
- GridItemPatternIdentifiers.cs
- QueryInterceptorAttribute.cs
- MenuItemStyle.cs
- SchemaMapping.cs
- CloseSequenceResponse.cs
- MailWriter.cs
- OdbcConnectionFactory.cs
- ToolboxBitmapAttribute.cs
- UidManager.cs
- EmptyStringExpandableObjectConverter.cs
- XmlSerializationWriter.cs
- Operand.cs
- CoordinationService.cs
- CasesDictionary.cs
- WeakReferenceKey.cs
- DependencyProperty.cs
- IgnoreSectionHandler.cs
- ContainerAction.cs
- CryptoStream.cs
- XmlChoiceIdentifierAttribute.cs
- SQLInt32Storage.cs
- UInt64Storage.cs
- CssStyleCollection.cs
- XPathSingletonIterator.cs
- RenderData.cs
- DetailsViewCommandEventArgs.cs
- DataAccessor.cs
- SiteMapHierarchicalDataSourceView.cs
- DocumentOrderQuery.cs
- Membership.cs
- BamlTreeUpdater.cs
- DSACryptoServiceProvider.cs
- WebSysDescriptionAttribute.cs
- RNGCryptoServiceProvider.cs
- XmlHierarchicalDataSourceView.cs
- EmptyEnumerator.cs
- SimpleType.cs
- StickyNoteAnnotations.cs
- ReflectionPermission.cs
- Transform3DCollection.cs
- UserControlCodeDomTreeGenerator.cs
- InternalDispatchObject.cs
- panel.cs