private static XmlSchemaElement CreateFaultElement(ResponseValueDefinition responseValueDefinition, FaultDefinition faultDefinition) { return(new XmlSchemaElement { Name = responseValueDefinition.FaultName, SchemaTypeName = new XmlQualifiedName(faultDefinition.Name.LocalName, faultDefinition.Name.NamespaceName) }); }
public TestSystemServiceMap(XName operationName) { var methodInfo = typeof(Implementation).GetTypeInfo().GetMethod("Execute"); OperationDefinition = new OperationDefinition(operationName, null, methodInfo); RequestValueDefinition = new RequestValueDefinition(OperationDefinition); ResponseValueDefinition = new ResponseValueDefinition(OperationDefinition) { ContainsNonTechnicalFault = true }; }
/// <summary> /// Initialize new `listMethods` service map. /// </summary> public ListMethodsServiceMap(XName operationName) { var methodInfo = typeof(Implementation).GetTypeInfo().GetMethod("Execute"); OperationDefinition = new OperationDefinition(operationName, null, methodInfo); RequestValueDefinition = new RequestValueDefinition(OperationDefinition); ResponseValueDefinition = new ResponseValueDefinition(OperationDefinition) { ContainsNonTechnicalFault = true, ResponseElementName = operationName.NamespaceName == NamespaceConstants.XTEE ? "keha" : "response" }; }
/// <summary> /// Initializes new ServiceMap entity using settings specified in operationDefinition. /// <param name="serializerCache">Provides TypeMap lookup.</param> /// <param name="operationDefinition">Operation which this ServiceMap represents.</param> /// <param name="requestValueDefinition">Defines operation request message.</param> /// <param name="responseValueDefinition">Defines operation response message.</param> /// <param name="inputTypeMap">Default TypeMap of the operation request root element.</param> /// <param name="outputTypeMap"> Default TypeMap of the operation response root element.</param> /// </summary> public ServiceMap(ISerializerCache serializerCache, OperationDefinition operationDefinition, RequestValueDefinition requestValueDefinition, ResponseValueDefinition responseValueDefinition, ITypeMap inputTypeMap, ITypeMap outputTypeMap) { this.serializerCache = serializerCache; RequestValueDefinition = requestValueDefinition; ResponseValueDefinition = responseValueDefinition; OperationDefinition = operationDefinition; var inputContentTypeMap = inputTypeMap as IContentTypeMap; this.inputTypeMap = inputContentTypeMap != null && requestValueDefinition.UseXop ? inputContentTypeMap.GetOptimizedContentTypeMap() : inputTypeMap; var outputContentTypeMap = outputTypeMap as IContentTypeMap; this.outputTypeMap = outputContentTypeMap != null && responseValueDefinition.UseXop ? outputContentTypeMap.GetOptimizedContentTypeMap() : outputTypeMap; }
public ProtoBufServiceMap(ISerializerCache serializerCache, OperationDefinition operationDefinition, RequestValueDefinition requestValueDefinition, ResponseValueDefinition responseValueDefinition, ITypeMap inputTypeMap, ITypeMap outputTypeMap) : base(serializerCache, operationDefinition, requestValueDefinition, responseValueDefinition, inputTypeMap, outputTypeMap) { var requestType = RequestValueDefinition.ParameterInfo?.ParameterType; var responseType = ResponseValueDefinition.ParameterInfo?.ParameterType; readRequestMethod = BuildReadValueMethod(requestType); readResponseMethod = BuildReadValueMethod(responseType); writeRequestMethod = BuildWriteValueMethod(requestType); writeResponseMethod = BuildWriteValueMethod(responseType); }
public override void ExportResponseValueDefinition(ResponseValueDefinition responseValueDefinition) { responseValueDefinition.RuntimeType = typeof(Stream); responseValueDefinition.UseXop = true; responseValueDefinition.CustomAttributes = new[] { Tuple.Create(XName.Get("schema", XROAD_PROTOBUF_SCHEMA), GetPrototypeName()) }; }
private XmlSchemaComplexType CreateOperationResponseSchemaType(ResponseValueDefinition definition, XmlSchemaElement requestElement, XmlSchemaElement responseElement, FaultDefinition faultDefinition) { if (definition.ContainsNonTechnicalFault) { return new XmlSchemaComplexType { Particle = new XmlSchemaSequence { Items = { requestElement, responseElement } } } } ; if ("unbounded".Equals(responseElement.MaxOccursString) || responseElement.MaxOccurs > 1) { responseElement = new XmlSchemaElement { Name = definition.ResponseElementName, SchemaType = new XmlSchemaComplexType { Particle = new XmlSchemaSequence { Items = { responseElement } } } } } ; else { responseElement.Name = definition.ResponseElementName; } var complexTypeSequence = new XmlSchemaSequence(); if (definition.DeclaringOperationDefinition.CopyRequestPartToResponse) { complexTypeSequence.Items.Add(requestElement); } switch (definition.XRoadFaultPresentation) { case XRoadFaultPresentation.Choice: complexTypeSequence.Items.Add(new XmlSchemaChoice { Items = { responseElement, CreateFaultElement(definition, faultDefinition) } }); break; case XRoadFaultPresentation.Explicit: responseElement.MinOccurs = 0; var faultElement = CreateFaultElement(definition, faultDefinition); faultElement.MinOccurs = 0; complexTypeSequence.Items.Add(responseElement); complexTypeSequence.Items.Add(faultElement); break; case XRoadFaultPresentation.Implicit: complexTypeSequence.Items.Add(responseElement); break; default: throw new ArgumentOutOfRangeException(); } return(new XmlSchemaComplexType { Particle = complexTypeSequence }); }