コード例 #1
0
        public void BuildPathWithFunctionImport()
        {
            ODataUri odataUri = new ODataUri();

            odataUri.ServiceRoot = new Uri("http://gobbledygook/");
            IEdmOperationImport functionImport         = HardCodedTestModel.TestModel.EntityContainer.FindOperationImports("GetPet1").Single();
            IEdmEntitySetReferenceExpression reference = functionImport.EntitySet as IEdmEntitySetReferenceExpression;

            OperationSegmentParameter[] parameters = new OperationSegmentParameter[] { new OperationSegmentParameter("id", new ConstantNode(1, "1")) };
            odataUri.Path = new ODataPath(new OperationImportSegment(
                                              new IEdmOperationImport[] { functionImport },
                                              reference.ReferencedEntitySet,
                                              parameters));
            ODataUriBuilder odataUriBuilder = new ODataUriBuilder(ODataUrlConventions.Default, odataUri);
            Uri             actual          = odataUriBuilder.BuildUri();

            Assert.Equal(new Uri("http://gobbledygook/GetPet1(id=1)"), actual);
        }
コード例 #2
0
 internal void WriteFunctionImportElementHeader(IEdmFunctionImport functionImport)
 {
     this.xmlWriter.WriteStartElement("FunctionImport");
     this.WriteRequiredAttribute <string>("Name", functionImport.Name, new Func <string, string>(EdmValueWriter.StringAsXml));
     this.WriteOptionalAttribute <IEdmTypeReference>("ReturnType", functionImport.ReturnType, new Func <IEdmTypeReference, string>(this.TypeReferenceAsXml));
     if (functionImport.IsComposable && functionImport.IsSideEffecting || !functionImport.IsComposable && !functionImport.IsSideEffecting)
     {
         this.WriteRequiredAttribute <bool>("IsSideEffecting", functionImport.IsSideEffecting, new Func <bool, string>(EdmValueWriter.BooleanAsXml));
     }
     this.WriteOptionalAttribute <bool>("IsComposable", functionImport.IsComposable, false, new Func <bool, string>(EdmValueWriter.BooleanAsXml));
     this.WriteOptionalAttribute <bool>("IsBindable", functionImport.IsBindable, false, new Func <bool, string>(EdmValueWriter.BooleanAsXml));
     if (functionImport.EntitySet == null)
     {
         return;
     }
     else
     {
         IEdmEntitySetReferenceExpression entitySet = functionImport.EntitySet as IEdmEntitySetReferenceExpression;
         if (entitySet == null)
         {
             IEdmPathExpression edmPathExpression = functionImport.EntitySet as IEdmPathExpression;
             if (edmPathExpression == null)
             {
                 throw new InvalidOperationException(Strings.EdmModel_Validator_Semantic_FunctionImportEntitySetExpressionIsInvalid(functionImport.Name));
             }
             else
             {
                 this.WriteOptionalAttribute <IEnumerable <string> >("EntitySetPath", edmPathExpression.Path, new Func <IEnumerable <string>, string>(EdmModelCsdlSchemaWriter.PathAsXml));
                 return;
             }
         }
         else
         {
             this.WriteOptionalAttribute <string>("EntitySet", entitySet.ReferencedEntitySet.Name, new Func <string, string>(EdmValueWriter.StringAsXml));
             return;
         }
     }
 }
コード例 #3
0
 internal void WriteEntitySetReferenceExpressionElement(IEdmEntitySetReferenceExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_EntitySetReference);
     this.WriteRequiredAttribute(CsdlConstants.Attribute_Name, expression.ReferencedEntitySet, EntitySetAsXml);
     this.WriteEndElement();
 }
コード例 #4
0
 protected override void ProcessEntitySetReferenceExpression(IEdmEntitySetReferenceExpression expression)
 {
     this.schemaWriter.WriteEntitySetReferenceExpressionElement(expression);
 }
コード例 #5
0
ファイル: EdmModelVisitor.cs プロジェクト: tapika/swupd
 protected virtual void ProcessEntitySetReferenceExpression(IEdmEntitySetReferenceExpression expression)
 {
     this.ProcessExpression(expression);
 }
コード例 #6
0
 internal void WriteEntitySetReferenceExpressionElement(IEdmEntitySetReferenceExpression expression)
 {
     this.xmlWriter.WriteStartElement("EntitySetReference");
     this.WriteRequiredAttribute <IEdmEntitySet>("Name", expression.ReferencedEntitySet, new Func <IEdmEntitySet, string>(EdmModelCsdlSchemaWriter.EntitySetAsXml));
     this.WriteEndElement();
 }