2025-03-28 09:49:56 +08:00

127 lines
5.3 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
using PayForApp.Business;
namespace SoftCheck
{
public partial class Check : Form
{
public string host = ConfigurationManager.AppSettings["host"];
public string port = ConfigurationManager.AppSettings["port"];
public string service_name = ConfigurationManager.AppSettings["service_name"];
public string dbname = ConfigurationManager.AppSettings["dbname"];
public string UserName = ConfigurationManager.AppSettings["UserName"];
public string UserPwd = ConfigurationManager.AppSettings["UserPwd"];
public string Interval = ConfigurationManager.AppSettings["Interval"];
public Check()
{
InitializeComponent();
Timer checktime = new Timer();
checktime.Tick += new EventHandler(StartCheck);
checktime.Interval = (Interval == "" ? 60 : int.Parse(Interval)) * 60 * 1000;
checktime.Start();
}
private void StartCheck(object sender, EventArgs e)
{
try
{
CheckSoft(ConfigurationManager.AppSettings["ServiceHO"]);
}
catch
{
try
{
CheckSoft(ConfigurationManager.AppSettings["ServiceHQ"]);
}
catch(Exception ex)
{
LogHelper.WriteServiceLog("版本校验:" + ex.Message);
}
}
}
public OracleConnection oraconn(string host, string port, string service_name, string UserName, string UserPwd)
{
string connstr = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = " + host + ")(PORT = " + port + "))" +
"(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = " + service_name + "))); User ID=" + UserName + "; PassWord=" + UserPwd;
OracleConnection conn = new OracleConnection(connstr);
return conn;
}
private void CheckSoft(string service)
{
string _serverpart = "";
DataTable CheckTable;
using (OracleConnection conn = oraconn(host, port, service_name, UserName, UserPwd))
{
string _select = string.Format("SELECT SERVERPARTCODE,SF_TYPE,SF_BUILD,SF_CHECK,SF_CHECKDAY FROM {0}.T_SYSCODE ", dbname);
try
{
DataSet _dataSet = new DataSet();
OracleDataAdapter _OracleDataAdapter = new OracleDataAdapter(_select, conn);
_OracleDataAdapter.Fill(_dataSet, "T_SYSCODE");
using (DataTable _dataTable = _dataSet.Tables["T_SYSCODE"])
{
if (_dataTable.Rows.Count > 0)
{
foreach (DataRow _Row in _dataTable.Rows)
{
_serverpart += (_serverpart == "" ? "" : ",") + _Row["SERVERPARTCODE"].ToString();
}
}
}
string[] str = { _serverpart };
CheckTable = JsonHepler.ToDataTable(WSHelper.InvokeWebService(service, "SoftCheck", str).ToString());
if (CheckTable.Rows.Count > 0)
{
foreach (DataRow _Row in CheckTable.Rows)
{
if (_Row["serverpart_code"].ToString() != "")
{
string _update = "UPDATE " + dbname + ".T_SYSCODE SET SF_CHECK = '" + _Row["sf_check"].ToString() + "' ";
if (_Row["sf_type"].ToString() != "")
{
_update += " ,SF_TYPE = '" + _Row["sf_type"].ToString() + "' ";
}
if (_Row["sf_build"].ToString() != "")
{
_update += " ,SF_BUILD = '" + _Row["sf_build"].ToString() + "' ";
}
if (_Row["sf_checkday"].ToString() != "")
{
_update += " ,SF_CHECKDAY = '" + _Row["sf_checkday"].ToString() + "' ";
}
_update += " WHERE SERVERPARTCODE = '" + _Row["serverpart_code"].ToString() + "'";
try
{
conn.Open();
OracleCommand ocm = new OracleCommand(_update, conn);
ocm.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{ }
}
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
}