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
- SmiMetaDataProperty.cs
- StatusBarDrawItemEvent.cs
- HtmlMeta.cs
- DataError.cs
- XmlBinaryReader.cs
- BroadcastEventHelper.cs
- Array.cs
- ImageConverter.cs
- ImportCatalogPart.cs
- _ConnectionGroup.cs
- RequestQueryParser.cs
- XmlSchemaException.cs
- XMLUtil.cs
- SystemIPInterfaceStatistics.cs
- BooleanFacetDescriptionElement.cs
- DataGridViewColumnCollectionDialog.cs
- EdmFunction.cs
- CompoundFileIOPermission.cs
- HitTestWithPointDrawingContextWalker.cs
- ModifierKeysValueSerializer.cs
- HwndSourceKeyboardInputSite.cs
- ConstructorBuilder.cs
- RangeBase.cs
- SafeWaitHandle.cs
- TrailingSpaceComparer.cs
- HtmlTableCellCollection.cs
- EventArgs.cs
- InkCanvasSelectionAdorner.cs
- DescendantBaseQuery.cs
- EntityDataSourceChangingEventArgs.cs
- BindingNavigator.cs
- WebServicesInteroperability.cs
- ListBoxItem.cs
- InkCanvasAutomationPeer.cs
- VisualStyleTypesAndProperties.cs
- BoundPropertyEntry.cs
- PolyBezierSegment.cs
- _ConnectStream.cs
- PropertyManager.cs
- StoragePropertyMapping.cs
- AtlasWeb.Designer.cs
- httpstaticobjectscollection.cs
- CryptoProvider.cs
- DbUpdateCommandTree.cs
- PeerNode.cs
- GridProviderWrapper.cs
- TemplateBaseAction.cs
- CodeMethodInvokeExpression.cs
- ConfigurationSectionGroup.cs
- ToolStripRenderEventArgs.cs
- SpeechSeg.cs
- compensatingcollection.cs
- WindowsIdentity.cs
- UnsafeNativeMethods.cs
- TimeSpanSecondsConverter.cs
- HostUtils.cs
- FormViewDesigner.cs
- ConfigViewGenerator.cs
- DurableMessageDispatchInspector.cs
- DoubleConverter.cs
- EntityModelBuildProvider.cs
- OutputChannelBinder.cs
- XmlEntity.cs
- User.cs
- LOSFormatter.cs
- BuildManagerHost.cs
- ListViewSortEventArgs.cs
- TargetControlTypeCache.cs
- AvTraceDetails.cs
- MimeFormReflector.cs
- EnvelopedPkcs7.cs
- SqlBuffer.cs
- TextEffect.cs
- CodeBinaryOperatorExpression.cs
- DataListCommandEventArgs.cs
- Pick.cs
- DataPagerFieldCommandEventArgs.cs
- FlagsAttribute.cs
- InternalConfirm.cs
- CacheChildrenQuery.cs
- CreateDataSourceDialog.cs
- QilFactory.cs
- BitmapEffect.cs
- FileEnumerator.cs
- GuidelineCollection.cs
- TextTreeDeleteContentUndoUnit.cs
- PolyQuadraticBezierSegment.cs
- PersistenceParticipant.cs
- _Semaphore.cs
- HostExecutionContextManager.cs
- ToolBar.cs
- FormatException.cs
- DbParameterHelper.cs
- diagnosticsswitches.cs
- SqlMethodAttribute.cs
- DataGridPageChangedEventArgs.cs
- DataContractSet.cs
- SpeechDetectedEventArgs.cs
- JoinSymbol.cs
- InfoCardProofToken.cs