protected override void ProcessOperationReturn(IEdmOperationReturn operationReturn) { if (operationReturn == null) { return; } bool inlineType = IsInlineType(operationReturn.Type); this.BeginElement( operationReturn.Type, type => this.schemaWriter.WriteReturnTypeElementHeader(operationReturn), type => { if (inlineType) { this.schemaWriter.WriteTypeAttribute(type); this.ProcessFacets(type, true /*inlineType*/); } else { this.VisitTypeReference(type); } }); this.EndElement(operationReturn); }
protected virtual void ProcessOperation(IEdmOperation operation) { // Do not visit vocabularyAnnotatable because functions and operation imports are always going to be either a schema element or a container element and will be visited through those paths. this.VisitOperationParameters(operation.Parameters); IEdmOperationReturn operationReturn = operation.GetReturn(); this.ProcessOperationReturn(operationReturn); }
protected virtual void ProcessOperationReturn(IEdmOperationReturn operationReturn) { if (operationReturn == null) { return; } this.ProcessVocabularyAnnotatable(operationReturn); this.VisitTypeReference(operationReturn.Type); }
private void ProcessOperation <TOperation>(TOperation operation, Action <TOperation> writeElementAction) where TOperation : IEdmOperation { this.BeginElement(operation, writeElementAction); this.VisitOperationParameters(operation.Parameters); IEdmOperationReturn operationReturn = operation.GetReturn(); this.ProcessOperationReturn(operationReturn); this.EndElement(operation); }
public void GetReturnShouldReturnCorrectly() { IEdmTypeReference typeReference = EdmCoreModel.Instance.GetString(true); var function = new EdmFunction("d.s", "checkout", typeReference); IEdmOperationReturn operationReturn = function.GetReturn(); Assert.NotNull(operationReturn); Assert.Same(operationReturn, function.Return); Assert.Same(operationReturn.Type, function.ReturnType); Assert.Same(operationReturn.DeclaringOperation, function); }
internal override void WriteReturnTypeElementHeader(IEdmOperationReturn operationReturn) { this.xmlWriter.WriteStartElement(CsdlConstants.Element_ReturnType); }
internal abstract void WriteReturnTypeElementHeader(IEdmOperationReturn operationReturn);