示例#1
0
        public string modifyJob(string sessionID, string jobName, string[] @params)
        {
            // TODO: Use Mono standard serialisation instead of the manually creating the SOAP XML request message (SubmitExt())
            StringWriter  stringWriter = new StringWriter();
            MonoXmlWriter writer       = MonoXmlWriter.Create(stringWriter);

            //XmlWriter writer = XmlWriter.Create(new StreamWriter("/Users/floeschau/Programming/ify.mono/release/ws-test-client/wsServer_createTask_5.xml"));
            writer.WriteStartDocument();

            writer.WriteStartElement("soap", "Envelope", "http://schemas.xmlsoap.org/soap/envelope/");
            writer.WriteNamespaceDefinition("xsd", "http://www.w3.org/2001/XMLSchema");
            writer.WriteNamespaceDefinition("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            writer.WriteNamespaceDefinition("enc", "http://schemas.xmlsoap.org/soap/encoding/");
            writer.WriteNamespaceDefinition("wss", "http://tempuri.org/eo.gridEngine.frontEnd.ContactService");

            writer.WritePrefixStartElement("soap", "Body");
            writer.WriteAttributeString("soap", "encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/");

            writer.WritePrefixStartElement("wss", "modifyJob");

            writer.WriteElementString("sessionID", sessionID);
            writer.WriteElementString("jobName", jobName);

            writer.WriteStartElement("params");
            writer.WritePrefixAttributeString("xsi", "type", "xsd:string");
            writer.WritePrefixAttributeString("enc", "arrayType", "xsd:string[" + @params.Length + "]");
            writer.WritePrefixAttributeString("enc", "offset", "[0]");
            for (int i = 0; i < @params.Length; i++)
            {
                writer.WriteElementString("item", @params[i]);
            }
            if (@params.Length == 0)
            {
                writer.WriteElementString("item", "");
            }
            writer.WriteEndElement(); // </params>

            writer.WriteEndElement(); // </wss:modifyJob>

            writer.WriteEndElement(); // </soap:Body>

            writer.WriteEndElement(); // </soap:Envelope>

            writer.WriteEndDocument();
            writer.Close();
            stringWriter.Close();

            return(ReceiveSoapResponse("modifyJob", "result", stringWriter.ToString()));
        }