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
- UserInitiatedNavigationPermission.cs
- TypeConverterValueSerializer.cs
- XmlSchemaSubstitutionGroup.cs
- Rotation3D.cs
- StylusPlugInCollection.cs
- PersonalizationStateInfoCollection.cs
- SqlMetaData.cs
- BufferedWebEventProvider.cs
- BaseTransportHeaders.cs
- BinaryObjectWriter.cs
- EventArgs.cs
- IUnknownConstantAttribute.cs
- ReadOnlyDictionary.cs
- DelegatingConfigHost.cs
- Queue.cs
- LinkedDataMemberFieldEditor.cs
- PenLineJoinValidation.cs
- ListView.cs
- XmlLinkedNode.cs
- SqlFunctions.cs
- ItemList.cs
- DataObjectSettingDataEventArgs.cs
- XmlSerializerAssemblyAttribute.cs
- hwndwrapper.cs
- WebPartEditVerb.cs
- HttpListenerPrefixCollection.cs
- BrowserCapabilitiesFactory.cs
- WebPartHelpVerb.cs
- FilterableData.cs
- TreeViewDataItemAutomationPeer.cs
- DbProviderFactories.cs
- Tool.cs
- RangeValuePattern.cs
- WebPartVerbsEventArgs.cs
- EntityDescriptor.cs
- MessageQueueInstaller.cs
- FilteredReadOnlyMetadataCollection.cs
- UIElement3D.cs
- PrincipalPermission.cs
- IdleTimeoutMonitor.cs
- IncrementalCompileAnalyzer.cs
- TextRangeSerialization.cs
- StructuredTypeEmitter.cs
- PeerContact.cs
- BinaryHeap.cs
- KoreanCalendar.cs
- ComboBoxItem.cs
- VirtualPathUtility.cs
- PropertyGeneratedEventArgs.cs
- DrawingServices.cs
- MsmqProcessProtocolHandler.cs
- _LazyAsyncResult.cs
- ResourceProperty.cs
- EventLog.cs
- ValidatingReaderNodeData.cs
- TraceUtils.cs
- HttpCookiesSection.cs
- DecimalConstantAttribute.cs
- WebPartDeleteVerb.cs
- XAMLParseException.cs
- ToolStripDropDownMenu.cs
- ObjectListDataBindEventArgs.cs
- SQLSingle.cs
- Header.cs
- ObjectConverter.cs
- ClientTargetCollection.cs
- CompiledELinqQueryState.cs
- StringFormat.cs
- ParameterToken.cs
- WindowPattern.cs
- QueryOptionExpression.cs
- SessionStateUtil.cs
- ListBox.cs
- HostingPreferredMapPath.cs
- ADMembershipUser.cs
- OwnerDrawPropertyBag.cs
- RuntimeConfigLKG.cs
- OverlappedContext.cs
- TouchesOverProperty.cs
- Effect.cs
- Hex.cs
- NamespaceImport.cs
- CurrentChangedEventManager.cs
- TraceHandlerErrorFormatter.cs
- TemplateInstanceAttribute.cs
- DataSourceXmlAttributeAttribute.cs
- LoginUtil.cs
- HMACSHA256.cs
- SecurityContextSecurityTokenAuthenticator.cs
- XmlAttribute.cs
- DataGridViewCell.cs
- ReadOnlyState.cs
- ElementFactory.cs
- ProfilePropertyMetadata.cs
- ChangeDirector.cs
- Serializer.cs
- BufferModesCollection.cs
- ConfigurationProperty.cs
- SoapSchemaMember.cs
- GraphicsState.cs