Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / WebControls / Expressions / PropertyExpression.cs / 1305376 / PropertyExpression.cs
#if ORYX_VNEXT namespace Microsoft.Web.Data.UI.WebControls.Expressions { using System.Web; using System.Web.UI.WebControls; #else namespace System.Web.UI.WebControls.Expressions { #endif using System; using System.Collections.Generic; using System.Security.Permissions; using System.Web.UI; using System.Linq.Expressions; using System.Linq; public class PropertyExpression : ParameterDataSourceExpression { public override IQueryable GetQueryable(IQueryable source) { if (source == null) { return null; } IDictionaryvalues = GetValues(); List equalsExpressions = new List (); ParameterExpression parameterExpression = Expression.Parameter(source.ElementType, String.Empty); foreach (KeyValuePair pair in values) { if (!String.IsNullOrEmpty(pair.Key)) { // Create the property expression Expression property = ExpressionHelper.CreatePropertyExpression(parameterExpression, pair.Key); // Get the value object value = ExpressionHelper.BuildObjectValue(pair.Value, property.Type); // Create Property == Value and '&&' the expressions together if (value != null) { Expression valueExpression = Expression.Constant(value, property.Type); Expression equalsExpression = Expression.Equal(property, valueExpression); equalsExpressions.Add(equalsExpression); } } } if (equalsExpressions.Any()) { Expression body = ExpressionHelper.And(equalsExpressions); return ExpressionHelper.Where(source, Expression.Lambda(body, parameterExpression)); } return source; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. #if ORYX_VNEXT namespace Microsoft.Web.Data.UI.WebControls.Expressions { using System.Web; using System.Web.UI.WebControls; #else namespace System.Web.UI.WebControls.Expressions { #endif using System; using System.Collections.Generic; using System.Security.Permissions; using System.Web.UI; using System.Linq.Expressions; using System.Linq; public class PropertyExpression : ParameterDataSourceExpression { public override IQueryable GetQueryable(IQueryable source) { if (source == null) { return null; } IDictionary values = GetValues(); List equalsExpressions = new List (); ParameterExpression parameterExpression = Expression.Parameter(source.ElementType, String.Empty); foreach (KeyValuePair pair in values) { if (!String.IsNullOrEmpty(pair.Key)) { // Create the property expression Expression property = ExpressionHelper.CreatePropertyExpression(parameterExpression, pair.Key); // Get the value object value = ExpressionHelper.BuildObjectValue(pair.Value, property.Type); // Create Property == Value and '&&' the expressions together if (value != null) { Expression valueExpression = Expression.Constant(value, property.Type); Expression equalsExpression = Expression.Equal(property, valueExpression); equalsExpressions.Add(equalsExpression); } } } if (equalsExpressions.Any()) { Expression body = ExpressionHelper.And(equalsExpressions); return ExpressionHelper.Where(source, Expression.Lambda(body, parameterExpression)); } return source; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HashCodeCombiner.cs
- WebZone.cs
- glyphs.cs
- TransformerInfo.cs
- EventMappingSettingsCollection.cs
- DelegatingTypeDescriptionProvider.cs
- ReferencedType.cs
- TraceSwitch.cs
- GrammarBuilderWildcard.cs
- CustomErrorsSection.cs
- HashCryptoHandle.cs
- XPathNode.cs
- ActiveXContainer.cs
- counter.cs
- IDQuery.cs
- NameValuePermission.cs
- ExpressionCopier.cs
- HTTPNotFoundHandler.cs
- mda.cs
- ScrollData.cs
- WebPartDescriptionCollection.cs
- DataGridPagerStyle.cs
- DocumentSequence.cs
- SoapIncludeAttribute.cs
- XmlWellformedWriter.cs
- PropertyPushdownHelper.cs
- BaseUriHelper.cs
- DiscoveryClientReferences.cs
- EventMappingSettingsCollection.cs
- ObjectListSelectEventArgs.cs
- CompiledRegexRunnerFactory.cs
- MetafileHeader.cs
- PropertyKey.cs
- Guid.cs
- ComUdtElement.cs
- DataViewListener.cs
- WorkflowWebService.cs
- OleDbParameterCollection.cs
- ListViewItemSelectionChangedEvent.cs
- TemplateControl.cs
- DataGridPagerStyle.cs
- Section.cs
- NamespaceList.cs
- METAHEADER.cs
- Context.cs
- IPEndPoint.cs
- RealizedColumnsBlock.cs
- TypeSemantics.cs
- handlecollector.cs
- ImageUrlEditor.cs
- DataList.cs
- HttpCachePolicy.cs
- TableDesigner.cs
- IisTraceWebEventProvider.cs
- BrushConverter.cs
- SoapMessage.cs
- SynchronousChannel.cs
- FindProgressChangedEventArgs.cs
- XmlUtil.cs
- SqlRetyper.cs
- BuildDependencySet.cs
- ISFTagAndGuidCache.cs
- DbDeleteCommandTree.cs
- DataControlFieldHeaderCell.cs
- WebBrowsableAttribute.cs
- KeyBinding.cs
- SHA384.cs
- GPRECT.cs
- XmlSchemaSimpleContentExtension.cs
- DomainConstraint.cs
- WorkflowDesignerColors.cs
- VarInfo.cs
- CodeGenerator.cs
- login.cs
- UserNamePasswordClientCredential.cs
- WinEventWrap.cs
- DataGridTableCollection.cs
- InkPresenterAutomationPeer.cs
- HttpCapabilitiesEvaluator.cs
- DrawListViewColumnHeaderEventArgs.cs
- ImageBrush.cs
- ExceptionUtility.cs
- RepeatButtonAutomationPeer.cs
- CellConstant.cs
- ActiveXMessageFormatter.cs
- SegmentInfo.cs
- FormParameter.cs
- DoubleAnimationClockResource.cs
- EntityCollection.cs
- CompiledRegexRunner.cs
- Attributes.cs
- HtmlMeta.cs
- RestHandler.cs
- TextWriter.cs
- ManagementOptions.cs
- CqlErrorHelper.cs
- ZipArchive.cs
- RSAPKCS1SignatureFormatter.cs
- CompilerParameters.cs
- PathParser.cs