private void GenerateOutputs() { var binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 999999999; var proxy = new CAdxWebServiceXmlCCClient(binding, new EndpointAddress("http://" + Ip + ":28880/adxwsvc/services/CAdxWebServiceXmlCC")); var parameters = new List <CAdxParamKeyValue>(); var response = proxy.getDescription(CallContext, PublicIdentifier); var descriptionRawXml = response.resultXml; var descriptionXml = new XmlDocument(); descriptionXml.LoadXml(descriptionRawXml); var description = new X3XmlDescriptionWrapper(descriptionXml); IDTSOutput100 output; bool hasOutputCollection = ComponentMetaData.OutputCollection.Count > 0; if (!hasOutputCollection) { output = ComponentMetaData.OutputCollection.New(); output.Name = "Output"; } else { output = ComponentMetaData.OutputCollection[0]; } var outputColumns = output.OutputColumnCollection; var outputColumnsCasted = outputColumns.Cast <IDTSOutputColumn100>(); /* * foreach (var listField in description.ListDescription) * { * IDTSOutputColumn100 newColumn; * if (outputColumnsCasted.Any(c => c.Name == listField.Name)) * newColumn = outputColumnsCasted.Single(c => c.Name == listField.Name); * else * newColumn = outputColumns.New(); * * newColumn.Name = listField.Name; * switch (listField.DataType) * { * case "Char": * newColumn.SetDataTypeProperties(DataType.DT_WSTR, (int)listField.Length, 0, 0, 0); * break; * default: * throw new NotImplementedException(); * } * }*/ }
protected X3XmlDescriptionWrapper GetWebServiceDescription() { var getDescriptionResponse = WebService.getDescription(X3WebService.Context, PublicIdentifierValue); var descriptionXml = new XmlDocument(); descriptionXml.LoadXml(getDescriptionResponse.resultXml); var description = new X3XmlDescriptionWrapper(descriptionXml); return(description); }
private void GenerateInputsAndOutputs() { var binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = WebServiceMaxResponse; var proxy = new CAdxWebServiceXmlCCClient(binding, new EndpointAddress("http://" + Ip + ":28880/adxwsvc/services/CAdxWebServiceXmlCC")); var parameters = new List <CAdxParamKeyValue>(); var response = proxy.getDescription(CallContext, PublicIdentifier); var descriptionRawXml = response.resultXml; var descriptionXml = new XmlDocument(); descriptionXml.LoadXml(descriptionRawXml); var description = new X3XmlDescriptionWrapper(descriptionXml); if (ComponentMetaData.InputCollection.Count == 0) { var inputCollection = ComponentMetaData.InputCollection.New(); inputCollection.Name = "Input"; var inputCollumnsCollection = inputCollection.InputColumnCollection; foreach (var group in description.ReadDescription) { foreach (var field in group.Fields) { var inputColumn = inputCollumnsCollection.New(); inputColumn.Name = group.Name + "|" + field.Name; } } } IDTSOutput100 output; bool hasOutputCollection = ComponentMetaData.OutputCollection.Count > 0; if (!hasOutputCollection) { output = ComponentMetaData.OutputCollection.New(); output.Name = "Output"; } else { output = ComponentMetaData.OutputCollection[0]; } var outputColumnsCollection = output.OutputColumnCollection; var outputColumns = outputColumnsCollection.Cast <IDTSOutputColumn100>(); foreach (var group in description.ObjectDescription) { foreach (var field in group.Fields) { var fieldName = group.Name + "|" + field.Name; if (field.DataType == "Char") { IDTSOutputColumn100 newColumn; if (outputColumns.Any(c => c.Name == fieldName)) { newColumn = outputColumns.Single(c => c.Name == fieldName); } else { newColumn = outputColumnsCollection.New(); } newColumn.Name = fieldName; switch (field.DataType) { case "Char": newColumn.SetDataTypeProperties(DataType.DT_WSTR, (int)field.Length, 0, 0, 0); break; default: throw new NotImplementedException(); } } } } }