Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / WebControls / QueryableDataSourceHelper.cs / 1305376 / QueryableDataSourceHelper.cs
#if ORYX_VNEXT namespace Microsoft.Web.Data.UI.WebControls { #else namespace System.Web.UI.WebControls { #endif using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Linq; using System.Reflection; using System.Text; using System.Text.RegularExpressions; using System.Web; using System.Web.Resources; using System.Web.UI; using System.Web.UI.WebControls; internal static class QueryableDataSourceHelper { // This regular expression verifies that parameter names are set to valid identifiers. This validation // needs to match the parser's identifier validation as done in the default block of NextToken(). private static readonly string IdentifierPattern = @"^\s*[\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}_]" + // first character @"[\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}\p{Pc}\p{Mn}\p{Mc}\p{Cf}_]*"; // remaining characters private static readonly Regex IdentifierRegex = new Regex(IdentifierPattern + @"\s*$"); private static readonly Regex AutoGenerateOrderByRegex = new Regex(IdentifierPattern + @"(\s+(asc|ascending|desc|descending))?\s*$", RegexOptions.IgnoreCase); // order operators internal static IQueryable AsQueryable(object o) { IQueryable oQueryable = o as IQueryable; if (oQueryable != null) { return oQueryable; } // Wrap strings in IEnumerableinstead of treating as IEnumerable . string oString = o as string; if (oString != null) { return Queryable.AsQueryable(new string[] { oString }); } IEnumerable oEnumerable = o as IEnumerable; if (oEnumerable != null) { // IEnumerable can be directly converted to an IQueryable . Type genericType = FindGenericEnumerableType(o.GetType()); if (genericType != null) { // The non-generic Queryable.AsQueryable gets called for array types, executing // the FindGenericType logic again. Might want to investigate way to avoid this. return Queryable.AsQueryable(oEnumerable); } // Wrap non-generic IEnumerables in IEnumerable
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataObjectMethodAttribute.cs
- Icon.cs
- PluralizationServiceUtil.cs
- SQLString.cs
- HTMLTagNameToTypeMapper.cs
- XmlComplianceUtil.cs
- XmlImplementation.cs
- XDRSchema.cs
- MissingMemberException.cs
- IdentityModelDictionary.cs
- ReceiveActivity.cs
- SkipQueryOptionExpression.cs
- Point4DValueSerializer.cs
- EventHandlersDesigner.cs
- ControlSerializer.cs
- Utility.cs
- ViewCellSlot.cs
- Equal.cs
- InstanceHandleConflictException.cs
- QuotedStringFormatReader.cs
- WebPartHeaderCloseVerb.cs
- ResourceDefaultValueAttribute.cs
- DesignTable.cs
- MonitorWrapper.cs
- Classification.cs
- XmlComment.cs
- ListViewHitTestInfo.cs
- DataGridViewCellEventArgs.cs
- InvalidOleVariantTypeException.cs
- SecurityCriticalDataForSet.cs
- EnumValAlphaComparer.cs
- TextEditorContextMenu.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- DuplicateWaitObjectException.cs
- PeerNearMe.cs
- SubpageParagraph.cs
- MessageCredentialType.cs
- CodeArgumentReferenceExpression.cs
- GuidConverter.cs
- ByteBufferPool.cs
- HtmlTernaryTree.cs
- SatelliteContractVersionAttribute.cs
- RuntimeConfig.cs
- ReplacementText.cs
- DataGridViewDataConnection.cs
- WindowsStreamSecurityBindingElement.cs
- FrameworkContentElement.cs
- HyperLink.cs
- HtmlMeta.cs
- ZeroOpNode.cs
- Executor.cs
- Utils.cs
- TransactionScope.cs
- BinaryMethodMessage.cs
- InkCanvasFeedbackAdorner.cs
- IPAddressCollection.cs
- GetWinFXPath.cs
- MimeObjectFactory.cs
- TimeZoneNotFoundException.cs
- IHttpResponseInternal.cs
- VectorAnimationUsingKeyFrames.cs
- SchemaInfo.cs
- LoadWorkflowByKeyAsyncResult.cs
- ObjectTag.cs
- DataTableMapping.cs
- OracleSqlParser.cs
- GuidConverter.cs
- XmlEncodedRawTextWriter.cs
- DesignerSelectionListAdapter.cs
- SystemIPv4InterfaceProperties.cs
- EncryptedData.cs
- TypedServiceOperationListItem.cs
- UntypedNullExpression.cs
- WebRequestModuleElementCollection.cs
- XPathAxisIterator.cs
- TPLETWProvider.cs
- DataListItemCollection.cs
- SqlProviderManifest.cs
- ExitEventArgs.cs
- HiddenFieldPageStatePersister.cs
- MeshGeometry3D.cs
- DataGridViewComboBoxCell.cs
- VectorAnimationUsingKeyFrames.cs
- ResourceContainerWrapper.cs
- dtdvalidator.cs
- OrderedDictionaryStateHelper.cs
- PropertyGeneratedEventArgs.cs
- DBDataPermission.cs
- DummyDataSource.cs
- LogFlushAsyncResult.cs
- SchemaComplexType.cs
- UnknownBitmapDecoder.cs
- XmlHierarchicalEnumerable.cs
- MachineKeyConverter.cs
- UInt16Converter.cs
- WebPartConnectionsCancelVerb.cs
- ReverseInheritProperty.cs
- basecomparevalidator.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ImportOptions.cs