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
- InheritanceContextChangedEventManager.cs
- HitTestWithGeometryDrawingContextWalker.cs
- FontSource.cs
- HtmlGenericControl.cs
- SingleTagSectionHandler.cs
- ColorKeyFrameCollection.cs
- XmlAttributeCache.cs
- TraceUtils.cs
- PropertyToken.cs
- ToolStripLocationCancelEventArgs.cs
- ConnectionProviderAttribute.cs
- InputElement.cs
- Win32KeyboardDevice.cs
- PeerNearMe.cs
- RegionIterator.cs
- XmlIncludeAttribute.cs
- Point3DValueSerializer.cs
- DataGridViewComboBoxColumn.cs
- AssemblyAttributes.cs
- ThreadPool.cs
- MobileCapabilities.cs
- DtrList.cs
- WorkflowServiceNamespace.cs
- CodeCatchClauseCollection.cs
- RsaKeyIdentifierClause.cs
- PasswordTextContainer.cs
- XmlSecureResolver.cs
- DoubleUtil.cs
- UnrecognizedAssertionsBindingElement.cs
- ChtmlSelectionListAdapter.cs
- SimpleWorkerRequest.cs
- Vector.cs
- StrongNameUtility.cs
- XmlCustomFormatter.cs
- NameValuePair.cs
- DriveNotFoundException.cs
- AdjustableArrowCap.cs
- Identity.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- GenericTextProperties.cs
- StorageEntityTypeMapping.cs
- _TLSstream.cs
- CreateParams.cs
- ConsoleTraceListener.cs
- Substitution.cs
- SqlDataSourceEnumerator.cs
- ColumnReorderedEventArgs.cs
- XamlParser.cs
- ReferenceService.cs
- VolatileEnlistmentMultiplexing.cs
- ColumnWidthChangingEvent.cs
- Positioning.cs
- CommonObjectSecurity.cs
- WeakRefEnumerator.cs
- BitmapCodecInfo.cs
- FixedPageAutomationPeer.cs
- DaylightTime.cs
- SurrogateEncoder.cs
- SqlConnectionHelper.cs
- StyleCollection.cs
- ListItem.cs
- ProxyWebPartManager.cs
- SuppressMergeCheckAttribute.cs
- GetPageNumberCompletedEventArgs.cs
- FileDialogPermission.cs
- Query.cs
- ReplyChannelBinder.cs
- InputScopeAttribute.cs
- DataObjectEventArgs.cs
- XmlLanguageConverter.cs
- Util.cs
- UnsafeNativeMethods.cs
- LineServicesRun.cs
- Connector.xaml.cs
- InstanceKeyCollisionException.cs
- HttpResponseInternalWrapper.cs
- CodeObject.cs
- TdsParser.cs
- RecommendedAsConfigurableAttribute.cs
- CommandLineParser.cs
- AddInDeploymentState.cs
- HwndHostAutomationPeer.cs
- ReturnValue.cs
- WindowsFont.cs
- XsltQilFactory.cs
- ZoneMembershipCondition.cs
- DynamicPropertyHolder.cs
- TrailingSpaceComparer.cs
- HandlerFactoryCache.cs
- XmlAttributeOverrides.cs
- BooleanToVisibilityConverter.cs
- ColumnPropertiesGroup.cs
- ExeConfigurationFileMap.cs
- GeometryHitTestParameters.cs
- _KerberosClient.cs
- MatrixTransform.cs
- LinkUtilities.cs
- XmlDownloadManager.cs
- XmlDictionaryReader.cs
- FragmentQueryKB.cs