Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWebControls / System / Data / WebControls / WebControlParameterProxy.cs / 1 / WebControlParameterProxy.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Diagnostics;
using System.Data;
using System.Globalization;
namespace System.Web.UI.WebControls
{
internal class WebControlParameterProxy
{
ParameterCollection _collection;
EntityDataSource _entityDataSource;
Parameter _parameter; // Can be null, that's why this class doesn't subclass Parameter
internal WebControlParameterProxy(string propertyName, ParameterCollection parameterCollection, EntityDataSource entityDataSource)
{
Debug.Assert(null != entityDataSource);
Debug.Assert(!String.IsNullOrEmpty(propertyName));
_parameter = EntityDataSourceUtil.GetParameter(propertyName, parameterCollection);
_collection = parameterCollection;
_entityDataSource = entityDataSource;
VerifyUniqueType(_parameter);
}
internal WebControlParameterProxy(Parameter parameter, ParameterCollection parameterCollection, EntityDataSource entityDataSource)
{
Debug.Assert(null != entityDataSource);
_parameter = parameter;
_collection = parameterCollection;
_entityDataSource = entityDataSource;
VerifyUniqueType(_parameter);
}
internal string Name
{
get
{
if (null != _parameter)
{
return _parameter.Name;
}
return null;
}
}
internal bool HasValue
{
get
{
return null != _parameter &&
null != Value;
}
}
internal bool ConvertEmptyStringToNull
{
get
{
if (null != _parameter)
{
return _parameter.ConvertEmptyStringToNull;
}
return false;
}
}
internal TypeCode TypeCode
{
get
{
if (null != _parameter)
{
return _parameter.Type;
}
return TypeCode.Empty;
}
}
internal DbType DbType
{
get
{
if (null != _parameter)
{
return _parameter.DbType;
}
return DbType.Object;
}
}
internal Type ClrType
{
get
{
Debug.Assert(this.TypeCode != TypeCode.Empty || this.DbType != DbType.Object, "Need to have TypeCode or DbType to get a ClrType");
if (this.TypeCode != TypeCode.Empty)
{
return EntityDataSourceUtil.ConvertTypeCodeToType(this.TypeCode);
}
return
EntityDataSourceUtil.ConvertTypeCodeToType(
EntityDataSourceUtil.ConvertDbTypeToTypeCode(this.DbType));
}
}
internal object Value
{
get
{
if (_parameter != null)
{
object paramValue = EntityDataSourceUtil.GetParameterValue(_parameter.Name, _collection, _entityDataSource);
if (paramValue != null)
{
if (this.DbType == DbType.DateTimeOffset)
{
object value = (paramValue is DateTimeOffset)
? paramValue
: DateTimeOffset.Parse(this.Value.ToString(), CultureInfo.CurrentCulture);
return value;
}
else if (this.DbType == DbType.Time)
{
object value = (paramValue is TimeSpan)
? paramValue
: TimeSpan.Parse(paramValue.ToString());
return value;
}
else if (this.DbType == DbType.Guid)
{
object value = (paramValue is Guid)
? paramValue
: new Guid(paramValue.ToString());
return value;
}
}
return paramValue;
}
return null;
}
}
private static void VerifyUniqueType(Parameter parameter)
{
if (parameter != null && parameter.Type == TypeCode.Empty && parameter.DbType == DbType.Object)
{
throw new InvalidOperationException(Strings.WebControlParameterProxy_TypeDbTypeMutuallyExclusive);
}
if (parameter != null && parameter.DbType != DbType.Object && parameter.Type != TypeCode.Empty)
{
throw new InvalidOperationException(Strings.WebControlParameterProxy_TypeDbTypeMutuallyExclusive);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Diagnostics;
using System.Data;
using System.Globalization;
namespace System.Web.UI.WebControls
{
internal class WebControlParameterProxy
{
ParameterCollection _collection;
EntityDataSource _entityDataSource;
Parameter _parameter; // Can be null, that's why this class doesn't subclass Parameter
internal WebControlParameterProxy(string propertyName, ParameterCollection parameterCollection, EntityDataSource entityDataSource)
{
Debug.Assert(null != entityDataSource);
Debug.Assert(!String.IsNullOrEmpty(propertyName));
_parameter = EntityDataSourceUtil.GetParameter(propertyName, parameterCollection);
_collection = parameterCollection;
_entityDataSource = entityDataSource;
VerifyUniqueType(_parameter);
}
internal WebControlParameterProxy(Parameter parameter, ParameterCollection parameterCollection, EntityDataSource entityDataSource)
{
Debug.Assert(null != entityDataSource);
_parameter = parameter;
_collection = parameterCollection;
_entityDataSource = entityDataSource;
VerifyUniqueType(_parameter);
}
internal string Name
{
get
{
if (null != _parameter)
{
return _parameter.Name;
}
return null;
}
}
internal bool HasValue
{
get
{
return null != _parameter &&
null != Value;
}
}
internal bool ConvertEmptyStringToNull
{
get
{
if (null != _parameter)
{
return _parameter.ConvertEmptyStringToNull;
}
return false;
}
}
internal TypeCode TypeCode
{
get
{
if (null != _parameter)
{
return _parameter.Type;
}
return TypeCode.Empty;
}
}
internal DbType DbType
{
get
{
if (null != _parameter)
{
return _parameter.DbType;
}
return DbType.Object;
}
}
internal Type ClrType
{
get
{
Debug.Assert(this.TypeCode != TypeCode.Empty || this.DbType != DbType.Object, "Need to have TypeCode or DbType to get a ClrType");
if (this.TypeCode != TypeCode.Empty)
{
return EntityDataSourceUtil.ConvertTypeCodeToType(this.TypeCode);
}
return
EntityDataSourceUtil.ConvertTypeCodeToType(
EntityDataSourceUtil.ConvertDbTypeToTypeCode(this.DbType));
}
}
internal object Value
{
get
{
if (_parameter != null)
{
object paramValue = EntityDataSourceUtil.GetParameterValue(_parameter.Name, _collection, _entityDataSource);
if (paramValue != null)
{
if (this.DbType == DbType.DateTimeOffset)
{
object value = (paramValue is DateTimeOffset)
? paramValue
: DateTimeOffset.Parse(this.Value.ToString(), CultureInfo.CurrentCulture);
return value;
}
else if (this.DbType == DbType.Time)
{
object value = (paramValue is TimeSpan)
? paramValue
: TimeSpan.Parse(paramValue.ToString());
return value;
}
else if (this.DbType == DbType.Guid)
{
object value = (paramValue is Guid)
? paramValue
: new Guid(paramValue.ToString());
return value;
}
}
return paramValue;
}
return null;
}
}
private static void VerifyUniqueType(Parameter parameter)
{
if (parameter != null && parameter.Type == TypeCode.Empty && parameter.DbType == DbType.Object)
{
throw new InvalidOperationException(Strings.WebControlParameterProxy_TypeDbTypeMutuallyExclusive);
}
if (parameter != null && parameter.DbType != DbType.Object && parameter.Type != TypeCode.Empty)
{
throw new InvalidOperationException(Strings.WebControlParameterProxy_TypeDbTypeMutuallyExclusive);
}
}
}
}
// 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
- ExceptionWrapper.cs
- WebPartDisplayModeEventArgs.cs
- ICollection.cs
- CharacterShapingProperties.cs
- Enlistment.cs
- SystemColorTracker.cs
- SizeChangedEventArgs.cs
- ConfigViewGenerator.cs
- Input.cs
- ProviderSettingsCollection.cs
- ReceiveMessageRecord.cs
- ArcSegment.cs
- ModelPerspective.cs
- HideDisabledControlAdapter.cs
- SBCSCodePageEncoding.cs
- ExpandButtonVisibilityConverter.cs
- DefaultValueTypeConverter.cs
- TextRange.cs
- ConnectionStringsExpressionEditor.cs
- DataChangedEventManager.cs
- SqlUserDefinedAggregateAttribute.cs
- ToolboxDataAttribute.cs
- DataSourceCache.cs
- FixedSOMLineRanges.cs
- PartialList.cs
- Opcode.cs
- RijndaelManagedTransform.cs
- OutputScopeManager.cs
- ListItemCollection.cs
- XPathSingletonIterator.cs
- PreservationFileReader.cs
- TransformValueSerializer.cs
- PrimitiveType.cs
- TextBoxRenderer.cs
- BinaryNode.cs
- ListBox.cs
- HostVisual.cs
- FlowDocumentView.cs
- Ray3DHitTestResult.cs
- TextRenderer.cs
- TextRunCacheImp.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ConfigurationLocation.cs
- ByteFacetDescriptionElement.cs
- ReferencedAssembly.cs
- XAMLParseException.cs
- FontUnit.cs
- Propagator.JoinPropagator.cs
- LogRecordSequence.cs
- HtmlInputSubmit.cs
- AssemblyBuilder.cs
- Rect3D.cs
- AssemblyResourceLoader.cs
- TemplateBindingExpressionConverter.cs
- ThaiBuddhistCalendar.cs
- _NtlmClient.cs
- BookmarkManager.cs
- TemplatePropertyEntry.cs
- OperationAbortedException.cs
- SqlUtils.cs
- Path.cs
- SparseMemoryStream.cs
- DataGridViewCellFormattingEventArgs.cs
- UTF8Encoding.cs
- XmlStringTable.cs
- CompilerCollection.cs
- QuaternionRotation3D.cs
- JpegBitmapEncoder.cs
- RuntimeEnvironment.cs
- TableTextElementCollectionInternal.cs
- ElementHostPropertyMap.cs
- ViewDesigner.cs
- XPathPatternParser.cs
- VisualBrush.cs
- RijndaelManaged.cs
- GlyphManager.cs
- LassoSelectionBehavior.cs
- NetworkCredential.cs
- SafePointer.cs
- ServerValidateEventArgs.cs
- Grid.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- UICuesEvent.cs
- SiteMapHierarchicalDataSourceView.cs
- FixedSOMTableRow.cs
- ManagedCodeMarkers.cs
- MasterPageBuildProvider.cs
- SimpleBitVector32.cs
- SourceItem.cs
- Transform3D.cs
- MappingModelBuildProvider.cs
- XmlSchemaSimpleContentExtension.cs
- DBCommand.cs
- DynamicILGenerator.cs
- DatePickerTextBox.cs
- TimeSpan.cs
- RealProxy.cs
- TypedTableBaseExtensions.cs
- TheQuery.cs
- SlipBehavior.cs