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
- RuntimeIdentifierPropertyAttribute.cs
- FixedSOMFixedBlock.cs
- WebPartEditorCancelVerb.cs
- GlyphManager.cs
- BuildProvider.cs
- TemplateBindingExtensionConverter.cs
- XmlnsDictionary.cs
- CodeCommentStatementCollection.cs
- TrackBar.cs
- ConfigDefinitionUpdates.cs
- Literal.cs
- RadioButtonBaseAdapter.cs
- FtpRequestCacheValidator.cs
- ExpressionVisitor.cs
- TextRangeAdaptor.cs
- FindRequestContext.cs
- BuildManager.cs
- DesignTimeType.cs
- BuildProviderCollection.cs
- PowerModeChangedEventArgs.cs
- PipelineDeploymentState.cs
- ExceptionWrapper.cs
- __FastResourceComparer.cs
- DrawingDrawingContext.cs
- BitmapImage.cs
- HtmlInputText.cs
- ButtonColumn.cs
- ConfigurationManagerHelper.cs
- WebMessageEncodingBindingElement.cs
- Style.cs
- StickyNoteHelper.cs
- XmlSerializerOperationFormatter.cs
- ToolStripSeparator.cs
- TreeNodeBindingCollection.cs
- FixedSOMImage.cs
- AmbientValueAttribute.cs
- ToolBar.cs
- SoapTypeAttribute.cs
- RequestCachePolicyConverter.cs
- ExpressionBinding.cs
- CodeArgumentReferenceExpression.cs
- ToolBarTray.cs
- AvTraceDetails.cs
- LocalizationParserHooks.cs
- DataSourceNameHandler.cs
- LocalValueEnumerator.cs
- NTAccount.cs
- ToolBarTray.cs
- CalendarDateRange.cs
- ServiceModelEnumValidatorAttribute.cs
- MetabaseSettings.cs
- FormsAuthentication.cs
- HtmlElementCollection.cs
- HttpCacheParams.cs
- WmpBitmapEncoder.cs
- DataGridViewRowConverter.cs
- ExpressionBuilder.cs
- BinaryReader.cs
- WebPartTransformerCollection.cs
- DataKeyArray.cs
- XpsViewerException.cs
- InitializationEventAttribute.cs
- VBCodeProvider.cs
- PersonalizationProviderCollection.cs
- WriteTimeStream.cs
- RadioButtonPopupAdapter.cs
- CreateUserErrorEventArgs.cs
- ResourceCategoryAttribute.cs
- OleDbConnectionFactory.cs
- Binding.cs
- MethodBuilder.cs
- DetailsViewDeleteEventArgs.cs
- Style.cs
- FilteredDataSetHelper.cs
- GraphicsPath.cs
- EncoderExceptionFallback.cs
- SqlSelectStatement.cs
- _ShellExpression.cs
- DateRangeEvent.cs
- WebBrowserPermission.cs
- WebRequestModuleElementCollection.cs
- SqlCacheDependencyDatabaseCollection.cs
- jithelpers.cs
- XPathEmptyIterator.cs
- RootBuilder.cs
- TextSelectionHighlightLayer.cs
- RegexCompiler.cs
- InputElement.cs
- ErrorHandlerModule.cs
- ApplicationDirectoryMembershipCondition.cs
- Activator.cs
- TraceUtility.cs
- IntPtr.cs
- StrokeCollectionDefaultValueFactory.cs
- ToolBar.cs
- ContactManager.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- DbConnectionPoolCounters.cs
- XmlILIndex.cs
- CopyOfAction.cs