Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWebControls / System / Data / WebControls / WebControlParameterProxy.cs / 1305376 / 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.ConvertDbTypeToType(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(), CultureInfo.CurrentCulture); 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.ConvertDbTypeToType(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(), CultureInfo.CurrentCulture); 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
- DynamicDocumentPaginator.cs
- COM2ComponentEditor.cs
- RoamingStoreFileUtility.cs
- ToolBarOverflowPanel.cs
- basecomparevalidator.cs
- EncodedStreamFactory.cs
- IERequestCache.cs
- ChildrenQuery.cs
- EditorZone.cs
- NameObjectCollectionBase.cs
- AuthenticationException.cs
- ArcSegment.cs
- IntranetCredentialPolicy.cs
- Maps.cs
- WebProxyScriptElement.cs
- IntSecurity.cs
- DataObjectMethodAttribute.cs
- QuaternionConverter.cs
- ConfigurationManagerHelperFactory.cs
- ParenExpr.cs
- ConstraintCollection.cs
- PenThread.cs
- Pen.cs
- PaperSize.cs
- NumberFormatInfo.cs
- XmlNavigatorFilter.cs
- TerminateDesigner.cs
- MatcherBuilder.cs
- precedingsibling.cs
- SQLInt32Storage.cs
- PointF.cs
- Viewport2DVisual3D.cs
- CodeTypeDeclarationCollection.cs
- Random.cs
- XsdBuildProvider.cs
- GreenMethods.cs
- PersonalizationAdministration.cs
- ParserHooks.cs
- ContentType.cs
- TypeExtension.cs
- SQLStringStorage.cs
- PageThemeParser.cs
- ListDataBindEventArgs.cs
- ReadOnlyHierarchicalDataSource.cs
- RadioButton.cs
- StateWorkerRequest.cs
- ReliableOutputSessionChannel.cs
- ServiceReference.cs
- Block.cs
- RuleAction.cs
- NonClientArea.cs
- RoleGroup.cs
- OracleBinary.cs
- ThreadStateException.cs
- OdbcTransaction.cs
- SchemaConstraints.cs
- CommentEmitter.cs
- ProgressBarRenderer.cs
- XmlNavigatorStack.cs
- XmlSchemaExternal.cs
- Header.cs
- SchemaImporterExtensionElement.cs
- FixedSOMPageElement.cs
- TreeNode.cs
- DEREncoding.cs
- WindowsSysHeader.cs
- XmlWrappingWriter.cs
- UnknownExceptionActionHelper.cs
- SoapFormatExtensions.cs
- RemoteCryptoTokenProvider.cs
- CodeTypeMemberCollection.cs
- EnumerableValidator.cs
- MsmqIntegrationElement.cs
- Relationship.cs
- Utility.cs
- SiteMapNodeItem.cs
- Rect3D.cs
- PropertyInformationCollection.cs
- Assembly.cs
- Math.cs
- COM2ExtendedUITypeEditor.cs
- FixedTextSelectionProcessor.cs
- TheQuery.cs
- XamlReaderHelper.cs
- MarshalDirectiveException.cs
- ContextInformation.cs
- BrowsableAttribute.cs
- ObjectParameterCollection.cs
- KeyboardEventArgs.cs
- ActivationArguments.cs
- XmlSchemaSimpleContentRestriction.cs
- TagMapCollection.cs
- Interlocked.cs
- SchemaInfo.cs
- AuthenticateEventArgs.cs
- PenThreadPool.cs
- PolicyStatement.cs
- SoapIncludeAttribute.cs
- UserControlParser.cs
- WpfMemberInvoker.cs