Example #1
0
        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();
                        }
                    }
                }
            }
        }