2025-04-15 12:10:19 +02:00

88 lines
3.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace EseguiMotorePrometeia
{
//EseguiMotorePrometeia.exe serverPrometeia portaServerPrometeia pathInput pathOnput tipoTracciato hp alfa
//EseguiMotorePrometeia.exe vmcolpra 9875 D:\BatchSEI\C6\input\input.txt D:\BatchSEI\C6\output\output 13 63 99
class EseguiMotorePrometeia
{
static int Main(string[] args)
{
try
{
string serverPrometeia = args[0];
string portaServerPrometeia = args[1];
string pathInput = args[2];
string pathOnput = args[3];
string tipoTracciato = args[4];
string hp = args[5];
string alfa = args[6];
StringBuilder xml = new StringBuilder();
xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
xml.Append("<methodCall>");
xml.Append("<methodName>riskengine.perform</methodName>");
xml.Append("<params>");
xml.Append("<param>");
xml.Append("<value>");
xml.Append("<string>");
xml.Append("<![CDATA[");
xml.Append("<messaggio>");
xml.Append("<testata>C6</testata>");
xml.Append("<richiesta03>");
xml.Append("<fileIn>" + pathInput + "</fileIn>");
xml.Append("<fileOut>" + pathOnput + "</fileOut>");
xml.Append("<tipoTracciato>" + tipoTracciato + "</tipoTracciato>");
xml.Append("<hp>" + hp + "</hp>");
xml.Append("<alfa>" + alfa + "</alfa>");
xml.Append("</richiesta03>");
xml.Append("</messaggio>");
xml.Append("]]>");
xml.Append("</string>");
xml.Append("</value>");
xml.Append("</param>");
xml.Append("</params>");
xml.Append("</methodCall>");
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://" + serverPrometeia + ":" + portaServerPrometeia);
webrequest.KeepAlive = false;
webrequest.Method = "POST";
webrequest.ContentType = "text/xml";
webrequest.AllowAutoRedirect = false;
webrequest.Timeout = int.MaxValue;
BuildReqStream(ref webrequest, xml.ToString());
HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse();
Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream = new StreamReader(webresponse.GetResponseStream(), enc);
string Response = loResponseStream.ReadToEnd();
loResponseStream.Close();
webresponse.Close();
if (Response.ToLower().Contains("exception"))
{
throw new Exception("Esegui Motore Prometeia ha generato un errore: " + Response);
}
return 0;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return 1;
}
}
private static void BuildReqStream(ref HttpWebRequest webrequest, string xml)
{
byte[] bytes = Encoding.ASCII.GetBytes(xml);
webrequest.ContentLength = bytes.Length;
Stream oStreamOut = webrequest.GetRequestStream();
oStreamOut.Write(bytes, 0, bytes.Length);
oStreamOut.Close();
}
}
}