AVS/MySqlConnectivity.cs

74 lines
2.7 KiB
C#

using MySql.Data.MySqlClient;
using System;
using System.Net.NetworkInformation;
namespace AVS
{
class MySqlConnectivity
{
private readonly string connectionString = "server=utopia-2.c5qech8o9lgg.us-east-1.rds.amazonaws.com;user=itemVerification;password=itemVerification01;database=item_verification_system";
public void UpdateClientActivity(string pcName)
{
if (!IsInternetAvailable())
return;
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
long count = 0;
// First check if line_name exists
string checkQuery = "SELECT COUNT(*) FROM avs_line WHERE line_name = @pcName";
using (var cmd = new MySqlCommand(checkQuery, conn))
{
cmd.Parameters.AddWithValue("@pcName", pcName);
count = Convert.ToInt64(cmd.ExecuteScalar());
}
string dateTimeNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (count > 0)
{
string updateQuery = "UPDATE avs_line SET last_client_activity = @date WHERE line_name = @pcName";
using (var updateCmd = new MySqlCommand(updateQuery, conn))
{
updateCmd.Parameters.AddWithValue("@pcName", pcName);
updateCmd.Parameters.AddWithValue("@date", dateTimeNow); // ✅ correct assignment
updateCmd.ExecuteNonQuery();
}
}
else
{
string insertQuery = @"
INSERT INTO avs_line
(line_name, site, department, floor, device_type, status, last_client_activity, created_at, department_id)
VALUES (@pcName, '', '', '', 'PC', 1, @date, @date, 0)";
using (var insertCmd = new MySqlCommand(insertQuery, conn))
{
insertCmd.Parameters.AddWithValue("@pcName", pcName);
insertCmd.Parameters.AddWithValue("@date", dateTimeNow); // ✅ correct assignment
insertCmd.ExecuteNonQuery();
}
}
}
}
private bool IsInternetAvailable()
{
try
{
using (var ping = new Ping())
{
var reply = ping.Send("8.8.8.8", 3000);
return reply.Status == IPStatus.Success;
}
}
catch
{
return false;
}
}
}
}