private IEdmExpression ComputeValue() { IEdmTypeReference termType = Term is UnresolvedVocabularyTerm ? null : Term.Type; CsdlExpressionBase adjustedExpression = AdjustStringConstantUsingTermType((this.Annotation).Expression, termType); return(CsdlSemanticsModel.WrapExpression(adjustedExpression, TargetBindingContext, this.Schema)); }
private IEnumerable <IEdmExpression> ComputeElements() { List <IEdmExpression> elements = new List <IEdmExpression>(); foreach (CsdlExpressionBase elementValue in this.expression.ElementValues) { elements.Add(CsdlSemanticsModel.WrapExpression(elementValue, this.bindingContext, this.Schema)); } return(elements); }
private IEdmExpression ComputeAppliedOperation() { if (this.expression.Function == null) { return(CsdlSemanticsModel.WrapExpression(this.expression.Arguments.FirstOrDefault(null), this.bindingContext, this.schema)); } else { IEdmOperation referenced; IEnumerable <IEdmOperation> candidateOperations = this.schema.FindOperations(this.expression.Function); int candidateCount = candidateOperations.Count(); if (candidateCount == 0) { referenced = new UnresolvedOperation(this.expression.Function, Edm.Strings.Bad_UnresolvedOperation(this.expression.Function), this.Location); } else { candidateOperations = candidateOperations.Where(this.IsMatchingFunction); candidateCount = candidateOperations.Count(); if (candidateCount > 1) { candidateOperations = candidateOperations.Where(this.IsExactMatch); candidateCount = candidateOperations.Count(); if (candidateCount != 1) { referenced = new UnresolvedOperation(this.expression.Function, Edm.Strings.Bad_AmbiguousOperation(this.expression.Function), this.Location); } else { referenced = candidateOperations.Single(); } } else if (candidateCount == 0) { referenced = new UnresolvedOperation(this.expression.Function, Edm.Strings.Bad_OperationParametersDontMatch(this.expression.Function), this.Location); } else { referenced = candidateOperations.Single(); } } return(new Library.Expressions.EdmOperationReferenceExpression(referenced)); } }
private IEnumerable <IEdmExpression> ComputeArguments() { bool skipFirst = this.expression.Function == null; List <IEdmExpression> result = new List <IEdmExpression>(); foreach (CsdlExpressionBase argument in this.expression.Arguments) { if (skipFirst) { skipFirst = false; } else { result.Add(CsdlSemanticsModel.WrapExpression(argument, this.bindingContext, this.schema)); } } return(result); }
private IEdmExpression ComputeExpression() { return(CsdlSemanticsModel.WrapExpression(this.sourceElement, this.BindingContext, this.schema)); }
private IEdmExpression ComputeOperand() { return(CsdlSemanticsModel.WrapExpression(this.expression.Operand, this.bindingContext, this.Schema)); }
private IEdmExpression ComputeValue() { return(CsdlSemanticsModel.WrapExpression(this.property.Expression, this.context.BindingContext, this.context.Schema)); }
private IEdmExpression ComputeIfFalse() { return(CsdlSemanticsModel.WrapExpression(this.expression.IfFalse, this.BindingContext, this.Schema)); }
private IEdmExpression ComputeValue() { return(CsdlSemanticsModel.WrapExpression((this.Annotation).Expression, TargetBindingContext, this.Schema)); }
private IEdmExpression ComputeBase() { return((this.expression.BaseExpression != null) ? CsdlSemanticsModel.WrapExpression(this.expression.BaseExpression, this.bindingContext, this.Schema) : null); }