Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlFigureLengthSerializer.cs
- RowToParametersTransformer.cs
- InvocationExpression.cs
- LiteralControl.cs
- PropertyPathWorker.cs
- ReturnType.cs
- LowerCaseStringConverter.cs
- X509Chain.cs
- MarkerProperties.cs
- RouteData.cs
- ValidationEventArgs.cs
- ChangeProcessor.cs
- UnsafeMethods.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ComplexTypeEmitter.cs
- ProcessModelInfo.cs
- RelatedImageListAttribute.cs
- OleDbRowUpdatingEvent.cs
- UMPAttributes.cs
- SoapCodeExporter.cs
- CodeExporter.cs
- SubstitutionList.cs
- ResumeStoryboard.cs
- ScrollEventArgs.cs
- TimeSpanFormat.cs
- Sorting.cs
- RuleRefElement.cs
- RecognizeCompletedEventArgs.cs
- FunctionQuery.cs
- LocalizabilityAttribute.cs
- CountAggregationOperator.cs
- TokenBasedSetEnumerator.cs
- SerialReceived.cs
- _ConnectOverlappedAsyncResult.cs
- CollectionEditVerbManager.cs
- MediaPlayer.cs
- Types.cs
- GeometryValueSerializer.cs
- ControlBuilder.cs
- XmlWrappingReader.cs
- Size3DValueSerializer.cs
- CryptoApi.cs
- StringStorage.cs
- PropertyFilterAttribute.cs
- DbProviderFactory.cs
- PrintingPermission.cs
- ProviderMetadataCachedInformation.cs
- ConvertEvent.cs
- EventLogger.cs
- WindowsListView.cs
- figurelength.cs
- DisplayInformation.cs
- ConvertBinder.cs
- SqlBooleanMismatchVisitor.cs
- UserValidatedEventArgs.cs
- EnvelopedPkcs7.cs
- Compiler.cs
- ImportCatalogPart.cs
- FusionWrap.cs
- SqlConnectionStringBuilder.cs
- PrintingPermissionAttribute.cs
- SimpleLine.cs
- Hash.cs
- PeerUnsafeNativeMethods.cs
- Image.cs
- CompoundFileReference.cs
- PrefixQName.cs
- MimeFormatExtensions.cs
- AspNetHostingPermission.cs
- XsdValidatingReader.cs
- MultipartIdentifier.cs
- CfgArc.cs
- GeneratedContractType.cs
- GridSplitterAutomationPeer.cs
- HuffCodec.cs
- DataGridViewCheckBoxColumn.cs
- BindingList.cs
- DashStyle.cs
- FullTrustAssembly.cs
- HandlerBase.cs
- FormViewRow.cs
- CqlLexerHelpers.cs
- StringCollection.cs
- XamlVector3DCollectionSerializer.cs
- SafeNativeMethods.cs
- FillErrorEventArgs.cs
- TreeViewHitTestInfo.cs
- StreamUpgradeAcceptor.cs
- AddingNewEventArgs.cs
- GeometryGroup.cs
- UndoUnit.cs
- ChannelServices.cs
- CounterCreationDataCollection.cs
- SequentialWorkflowRootDesigner.cs
- LinqDataSourceStatusEventArgs.cs
- NodeLabelEditEvent.cs
- QueryMath.cs
- MarshalDirectiveException.cs
- TextWriterTraceListener.cs
- RemoteWebConfigurationHost.cs