SafeDispatch/SafeMobileLIB_DLL/SMdb_access.cs
2024-02-22 18:43:59 +02:00

1200 lines
49 KiB
C#

using System;
using System.Xml;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Data;
using System.IO;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace SafeMobileLib
{
public class SMdb_accessmy
{
private MySqlConnection cnMY;
private string m_server;
private string m_dbname;
private string m_user;
private string m_password;
public SMdb_accessmy()
{
}
~SMdb_accessmy()
{
CloseConnection();
}
public void InitConnection(string p_server, string p_dbname, string p_user, string p_password, string p_port)
{
string MyConString = "server=" + p_server + ";" +
"uid=" + p_user + ";" +
"pwd=" + p_password + ";" +
"database=" + p_dbname + ";" +
"PORT="+p_port+";" +
"charset=utf8;"+
"Pooling=false;";
//Console.WriteLine("InitConnection: " + MyConString);
cnMY= new MySqlConnection();
cnMY.ConnectionString = MyConString;
m_server = p_server;
m_dbname = p_dbname;
m_user = p_user;
m_password = p_password;
try
{
cnMY.Open();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: InitConnection " + o.Message.ToString());
if (cnMY != null)
{
cnMY.Close();
Console.WriteLine("CLOSE CONNECTION");
}
throw new ArgumentException(o.Message.ToString());
}
}
public Int32 get_subscriber_count()
{
MySqlCommand cmd;
MySqlDataReader dr;
int count = 0;
try
{
cmd = new MySqlCommand("SELECT COUNT(*) from subscriber", cnMY);
try
{
dr = cmd.ExecuteReader();
if (dr.Read())
count = dr.GetInt32(0);
//Clean up.
dr.Close();
}
catch (MySqlException o)
{
Console.Write("File: SMdb_access.cs Meth: get_IMEI : ");
Console.WriteLine(o.Message.ToString());
}
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
return count;
}
public void InsertXML(string p_message)
{
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string id = attr["id"].InnerXml;
switch (id)
{
case "100001":
insertSchedule(p_message);break;
case "100010":
insertZone(p_message); break;
case "100011":
insertDIevnt(p_message); break;
case "100100":
insertIDLE(p_message); break;
case "100111":
insertRFID(p_message); break;
case "101010":
insertPoll(p_message); break;
case "110000":
insertConnNotice(p_message); break;
case "110010":
insertStopEvnt(p_message); break;
default:
insertUnknown(p_message);
break;
}
}
private uint DateTo70Format(DateTime param)
{
long nOfSeconds;
Console.WriteLine("DateTo70Format param=" + param);
System.DateTime dt70 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan span = param - dt70;
nOfSeconds = (long)span.TotalSeconds;
return ((uint)nOfSeconds);
}
private void insertSchedule(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query= "call insert_msg_pos('"+
attr["subscriber"].InnerXml+"','"+
attr["latitude"].InnerXml+"','"+
attr["longitude"].InnerXml+"','"+
attr["speed"].InnerXml+"','"+
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml+"','"+
attr["do"].InnerXml+"','"+
attr["time"].InnerXml+"','0',null);";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertSchedule " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertStopEvnt(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query = "call insert_msg_stop('" +
attr["subscriber"].InnerXml + "','" +
attr["latitude"].InnerXml + "','" +
attr["longitude"].InnerXml + "','" +
attr["speed"].InnerXml + "','" +
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml + "','" +
attr["do"].InnerXml + "','" +
attr["time"].InnerXml + "');";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertStopEvnt " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertZone(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query = "call insert_msg_zone('" +
attr["subscriber"].InnerXml + "','" +
attr["latitude"].InnerXml + "','" +
attr["longitude"].InnerXml + "','" +
attr["speed"].InnerXml + "','" +
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml + "','" +
attr["do"].InnerXml + "','" +
//attr["time"].InnerXml + "','" +
attr["time"].InnerXml + "','1','" +
//attr["zone_id"].InnerXml + "','" +
attr["direction"].InnerXml + "');";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertZone " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertDIevnt(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query = "call insert_msg_di('" +
attr["subscriber"].InnerXml + "','" +
attr["latitude"].InnerXml + "','" +
attr["longitude"].InnerXml + "','" +
attr["speed"].InnerXml + "','" +
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml + "','" +
attr["do"].InnerXml + "','" +
attr["time"].InnerXml + "');";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertDIevnt " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertIDLE(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query = "call insert_msg_idle('" +
attr["subscriber"].InnerXml + "','" +
attr["latitude"].InnerXml + "','" +
attr["longitude"].InnerXml + "','" +
attr["speed"].InnerXml + "','" +
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml + "','" +
attr["do"].InnerXml + "','" +
attr["time"].InnerXml + "','" +
attr["ai5"].InnerXml + "');"; //idle time is stored in ai5 value
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertIDLE " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertRFID(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query = "call insert_msg_rfid('" +
attr["subscriber"].InnerXml + "','" +
attr["latitude"].InnerXml + "','" +
attr["longitude"].InnerXml + "','" +
attr["speed"].InnerXml + "','" +
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml + "','" +
attr["do"].InnerXml + "','" +
attr["time"].InnerXml + "','" +
attr["RFID"].InnerXml + "');"; //idle time is stored in ai5 value
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertIDLE " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertPoll(string p_message)
{
try
{
MySqlCommand cmd;
XmlDocument docXML = new XmlDocument();
docXML.LoadXml(p_message);
XmlElement leRoot = docXML.DocumentElement;
XmlAttributeCollection attr = leRoot.Attributes;
string query = "call insert_msg_poll('" +
attr["subscriber"].InnerXml + "','" +
attr["latitude"].InnerXml + "','" +
attr["longitude"].InnerXml + "','" +
attr["speed"].InnerXml + "','" +
attr["dgr"].InnerXml + "','" +
attr["di"].InnerXml + "','" +
attr["do"].InnerXml + "','" +
attr["time"].InnerXml + "','" +
attr["POLL_ID"].InnerXml + "');";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: insertPoll " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
private void insertConnNotice(string p_message)
{
//TODO: insertConnNotice
}
private void insertUnknown(string p_message)
{
//TODO: insertUnknown
}
public ArrayList get_all_IMEI(int gateway_id)
{
ArrayList ret = new ArrayList();
MySqlCommand cmd;
MySqlDataReader dr;
String Tmp = "(no imei)";
try
{
cmd = new MySqlCommand("SELECT s.imei from subscriber s, subs_gateway g where s.sc_id=g.sc_id and g.gateway_id="+gateway_id+" ORDER BY s.imei", cnMY);
try
{
dr = cmd.ExecuteReader();
while (dr.Read())
{
Tmp = dr.GetString(0);
ret.Add(Tmp);
}
dr.Close();
}
catch (MySqlException o)
{
Console.Write("File: SMdb_access.cs Meth: get_IMEI : ");
Console.WriteLine(o.Message.ToString());
}
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : "+o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
return ret;
}
public void updateStatus(string p_IMEI, int status, int di)
{
Boolean insertIMEI = false;
MySqlCommand cmd;
int stat = get_status(p_IMEI);
if (stat == -1)
{
try
{
string query = "INSERT INTO mototurbo VALUES('"+p_IMEI+"',"+status+"," + di +")";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
query = "INSERT INTO logmototurbo VALUES('" + p_IMEI + "'," + DateTo70Format(DateTime.Now.ToUniversalTime())+ "," + status + ",null)";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: INSERT STATUS " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
else if (stat != status)
{
try
{
string query = "UPDATE mototurbo SET status =" + status + " where imei='" + p_IMEI + "'";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
query = "INSERT INTO logmototurbo VALUES('" + p_IMEI + "'," + DateTo70Format(DateTime.Now.ToUniversalTime()) + "," + status + ",null)";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString());
insertIMEI = true;
}
}
}
public int get_status(String IMEI)
{
int status = -1;
MySqlCommand cmd;
MySqlDataReader dr;
try
{
cmd = new MySqlCommand("SELECT status from mototurbo where imei='"+IMEI+"'", cnMY);
try
{
dr = cmd.ExecuteReader();
while (dr.Read())
{
status = dr.GetInt32(0);
}
dr.Close();
}
catch (MySqlException o)
{
Console.Write("File: SMdb_access.cs Meth: get_IMEI : ");
Console.WriteLine(o.Message.ToString());
}
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
return status;
}
public ArrayList get_sms_todeliver(int gateway_id)
{
ArrayList ret = new ArrayList();
MySqlCommand cmd;
MySqlDataReader dr;
smsmessage obj;
String Tmp = "(no imei)";
try
{
cmd = new MySqlCommand("SELECT s.imei , m.timeGMT, m.idx, m.mess, s.sc_id from sms m, subscriber s, subs_gateway g where m.status=0 and s.sc_id=g.sc_id and g.gateway_id=" + gateway_id + " and s.sc_id=m.sc_id_dest ORDER BY m.timeGMT", cnMY);
try
{
dr = cmd.ExecuteReader();
while (dr.Read())
{
obj = new smsmessage();
obj.imei_dest = dr.GetString(0);
obj.timeGMT = dr.GetUInt32(1);
obj.idx = dr.GetInt32(2);
obj.mess = dr.GetString(3);
obj.sc_id_dest = dr.GetInt32(4);
obj.status = 0;
ret.Add(obj);
}
dr.Close();
}
catch (MySqlException o)
{
Console.Write("File: SMdb_access.cs Meth: get_IMEI : ");
Console.WriteLine(o.Message.ToString());
}
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
return ret;
}
public void update_sms_delivered(int idxmess, int status)
{
// status = 1 : GW read the msg and delivered it
// status = 2 : GW received the confirm from radio unit
MySqlCommand cmd;
try
{
string query = "UPDATE sms SET status=" + status + " where idx=" + idxmess;
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString());
}
}
public void insert_sms_received(String imei, string mess, int type, string emailaddr)
{
MySqlCommand cmd;
MySqlDataReader dr;
Int32 sc_id=0;
try
{
cmd = new MySqlCommand("SELECT sc_id from subscriber where imei='"+imei+"'", cnMY);
try
{
dr = cmd.ExecuteReader();
while (dr.Read())
{
sc_id = dr.GetInt32(0);
}
dr.Close();
}
catch (MySqlException o)
{
Console.Write("File: SMdb_access.cs Meth: get_IMEI : ");
Console.WriteLine(o.Message.ToString());
}
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
try
{
string query = "INSERT INTO sms VALUES(" + DateTo70Format(DateTime.Now.ToUniversalTime())+","+sc_id+",0,'"+mess+"',"+type+",null,'')";
if (type == 7)
query = "INSERT INTO sms VALUES(" + DateTo70Format(DateTime.Now.ToUniversalTime()) + ",0," + sc_id + ",'" + mess + "'," + type + ",null,'" + emailaddr + "')";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString());
}
}
public String ReadTimeLimit(String Code)
{
String Retur = "";
try
{
MySqlCommand cmd;
MySqlDataReader dr;
cmd = new MySqlCommand("SELECT wait_name from run_wait where veh_name='" + Code + "'", cnMY);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Retur = dr.GetString(0);
}
dr.Close();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: ReadTimeLimit " + o.Message.ToString());
}
return Retur;
}
public void InsertTimeLimit(String Code, String Time)
{
MySqlCommand cmd;
string query = "";
try
{
query = "DELETE from run_wait where veh_name='" + Code + "'";
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
query = "INSERT INTO run_wait VALUES('" + Code + "'," + Time + ")";
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: run_wait " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
}
public void insert_sms_sent2email(String imei, String mess, String email)
{
MySqlCommand cmd;
MySqlDataReader dr;
Int32 sc_id=0;
try
{
cmd = new MySqlCommand("SELECT sc_id from subscriber where imei='" + imei + "'", cnMY);
try
{
dr = cmd.ExecuteReader();
while (dr.Read())
{
sc_id = dr.GetInt32(0);
}
dr.Close();
}
catch (MySqlException o)
{
Console.Write("File: SMdb_access.cs Meth: get_IMEI : ");
Console.WriteLine(o.Message.ToString());
}
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString());
throw new ArgumentException(o.Message.ToString());
}
try
{
string query = "INSERT INTO sms VALUES(" + DateTo70Format(DateTime.Now.ToUniversalTime()) + "," + sc_id + ",0,'" + mess + "',5,null,'"+email+"')";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString());
}
}
public void CloseConnection()
{
if (cnMY != null)
cnMY.Close();
}
public void updateDi(string p_IMEI, int di)
{
MySqlCommand cmd;
try
{
string query = "UPDATE mototurbo SET di =" + di + " where imei='" + p_IMEI + "'";
Console.WriteLine(query);
cmd = new MySqlCommand(query, cnMY);
cmd.ExecuteNonQuery();
}
catch (MySqlException o)
{
Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString());
}
}
public Boolean addVehicleToDb(String _imei, String _user, String _name, String _serialNumber)
{
MySqlCommand cmd;
MySqlDataReader Reader;
try
{
cmd = new MySqlCommand("SELECT count(imei) FROM subscriber where imei='" + _imei + "'", cnMY);
object temp = cmd.ExecuteScalar();
if (temp.ToString() == "0")
{
string id_subscriber = "", id_vehicle = "", id_user = "";
cmd = new MySqlCommand("INSERT INTO vehicle VALUES(null,'" + _serialNumber + "' ,'" + _name + "',1,0)", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("INSERT INTO subscriber VALUES(null,'" + _imei + "')", cnMY);
cmd.ExecuteNonQuery();
//get vehicle id
cmd = new MySqlCommand("SELECT max(id) FROM vehicle ", cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
id_vehicle = Reader.GetInt32(0).ToString();
}
Reader.Close();
//get subscriber id
cmd = new MySqlCommand("SELECT max(sc_id) FROM subscriber ", cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
id_subscriber = Reader.GetInt32(0).ToString();
}
Reader.Close();
//get user id
cmd = new MySqlCommand("SELECT userId FROM users Where login ='" + _user + "'", cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
id_user = Reader.GetInt32(0).ToString();
}
Reader.Close();
if (id_vehicle.Length > 0 && id_subscriber.Length > 0 && id_user.Length > 0)
{
cmd = new MySqlCommand("INSERT INTO vehicle_user VALUES(" + id_vehicle + "," + id_user + ",'2007-01-01')", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("INSERT INTO subscriber_history VALUES(" + id_subscriber + "," + id_vehicle + ",'2007-01-01',null)", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("DELETE FROM lastpos where imei='" + _imei + "'", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("INSERT INTO lastpos VALUES('" + _imei + "',1,42.06054,-88.02397,0,0,0,0,0)", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("INSERT INTO subs_gateway VALUES(" + id_subscriber + "," + "1" + ")", cnMY);
cmd.ExecuteNonQuery();
}
MessageBox.Show("Vehicle " + _name + " added !", "successfuly!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("There allready is a vehicle with IMEI : " + _imei + " in db ", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
catch (MySqlException ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed1 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
return true;
}
public void deleteVehicle(String _imei)
{
MySqlCommand cmd;
MySqlDataReader Reader;
try
{
String scid = "0";
String vehid = "0";
String vehname = "0";
cmd = new MySqlCommand("SELECT count(imei) FROM subscriber where imei='" + _imei + "'", cnMY);
object temp = cmd.ExecuteScalar();
if (temp.ToString() != "0")
{
cmd = new MySqlCommand("DELETE FROM lastpos where imei='" + _imei + "'", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("SELECT sc_id FROM subscriber where imei='" + _imei + "'", cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
scid = Reader.GetInt32(0).ToString();
}
Reader.Close();
cmd = new MySqlCommand("SELECT veh_id FROM subscriber_history where sc_id=" + scid, cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
vehid = Reader.GetInt32(0).ToString();
}
Reader.Close();
cmd = new MySqlCommand("SELECT name FROM vehicle where id=" + vehid, cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
vehname = Reader.GetString(0);
}
Reader.Close();
cmd = new MySqlCommand("DELETE FROM didocode where vehName='" + vehname + "'", cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("DELETE FROM vehicle where id=" + vehid, cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("DELETE FROM vehicle_user where veh_id=" + vehid, cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("DELETE FROM subscriber_history where veh_id=" + vehid, cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("DELETE FROM subscriber where sc_id=" + scid, cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("DELETE FROM subs_gateway where sc_id=" + scid, cnMY);
cmd.ExecuteNonQuery();
cmd = new MySqlCommand("SELECT evnt_id FROM messages where evnt_id<>0 and sc_id=" + scid, cnMY);
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
cmd = new MySqlCommand("DELETE FROM events where eventID=" + Reader.GetString(0), cnMY);
cmd.ExecuteNonQuery();
}
Reader.Close();
cmd = new MySqlCommand("DELETE FROM messages where sc_id=" + scid, cnMY);
cmd.ExecuteNonQuery();
try
{
cmd = new MySqlCommand("DELETE FROM subs_gateway where sc_id=" + scid, cnMY);
cmd.ExecuteNonQuery();
}
catch
{
}
MessageBox.Show("Delete IMEI finish.");
}
else
{
MessageBox.Show("Vehicle Not in db", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed2 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void editVehicle(String _id, String _name)
{
MySqlCommand cmd;
try
{
cmd = new MySqlCommand("select count(id) from vehicle where id=\'" + _id + "\'", cnMY);
object temp = cmd.ExecuteScalar();
if (Convert.ToInt32(temp) > 0)
{
cmd = new MySqlCommand("UPDATE vehicle SET name='" + _name + "' where id=" + _id, cnMY);
cmd.ExecuteNonQuery();
MessageBox.Show("Vehicle edited!", "successfuly!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("Vehicle Not found in db", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed3 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public ArrayList getAllVehicles()
{
ArrayList vehList = new ArrayList();
MySqlCommand cmd;
MySqlDataReader Reader;
cmd = new MySqlCommand("SELECT veh.id,sub.imei,veh.lp,veh.name"
+ " FROM vehicle as veh"
+ " INNER JOIN (subscriber_history as sh,subscriber as sub)"
+ " on ( veh.id = sh.veh_id and sh.sc_id = sub.sc_id)"
+ " Group by sub.imei"
+ " ORDER BY sub.imei",cnMY);
try
{
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
Vehicles veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "");
vehList.Add(veh);
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed4 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return vehList;
}
public ArrayList getAllUsersForCurrentVehicle(String _id)
{
ArrayList userList = new ArrayList();
MySqlCommand cmd;
MySqlDataReader Reader;
cmd = new MySqlCommand("SELECT firstName, lastName, login, password,userId FROM users as u"
+ " inner join( vehicle_user as vh)"
+ " on(vh.user_id=u.userID)"
+ " where vh.veh_id =" + _id.ToString()
+ " GROUP BY u.userId"
, cnMY);
try
{
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
User usr = new User(Reader.GetValue(0).ToString(), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), Reader.GetInt32(4));
userList.Add(usr);
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed5 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return userList;
}
//get all users that ar not assigned to current vehicle
public ArrayList getAllOtherUsersForCurrentVehicle(String _id)
{
ArrayList userList = new ArrayList();
MySqlCommand cmd;
MySqlDataReader Reader;
cmd = new MySqlCommand("SELECT firstName, lastName, login, password,userId FROM users as u"
+ " WHERE u.userID NOT IN "
+ " (SELECT user_id FROM vehicle_user "
+ " WHERE veh_id =" + _id
+ ")"
, cnMY);
try
{
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
User usr = new User(Reader.GetValue(0).ToString(), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), Convert.ToInt32(Reader.GetValue(4)));
userList.Add(usr);
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed6 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return userList;
}
public void addUserToDb(String _firstName, String _lastname, String _userName, String _password)
{
MySqlCommand cmd;
try
{
cmd = new MySqlCommand("select count(login) from users where login=\'" + _userName + "\'", cnMY);
object temp = cmd.ExecuteScalar();
if (temp.ToString() == "0")
{
cmd = new MySqlCommand("INSERT INTO users VALUES(null,'" + _firstName + "','" + _lastname + "','" + _userName + "','" + _password + "')", cnMY);
cmd.ExecuteNonQuery();
MessageBox.Show("user added !", "successfuly!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("User allready in db or some fields are empty", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!-1", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void updateUserToDb(String _firstName, String _lastname, String _userName, String _password)
{
MySqlCommand cmd;
try
{
cmd = new MySqlCommand("select count(login) from users where login=\'" + _userName + "\'", cnMY);
object temp = cmd.ExecuteScalar();
if (Convert.ToInt32(temp) > 0)
{
cmd = new MySqlCommand("UPDATE users SET firstName='" + _firstName + "',lastName='" + _lastname + "',login='" + _userName + "',password='" + _password + "' WHERE login='" + _userName + "'", cnMY);
cmd.ExecuteNonQuery();
MessageBox.Show("user edited!", "successfuly!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("User Not found in db", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!0", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void deleteUser(string userName)
{
MySqlCommand cmd;
try
{
cmd = new MySqlCommand("select count(login) from users where login=\'" + userName + "\'", cnMY);
object temp = cmd.ExecuteScalar();
if (temp.ToString() != "0")
{
cmd = new MySqlCommand("DELETE FROM users where login='" + userName + "'", cnMY);
cmd.ExecuteNonQuery();
MessageBox.Show("user Deleted !", "successfuly!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("User Not found in DB", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (MySqlException ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!1", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//get all users
public ArrayList getAllUsers()
{
ArrayList userList = new ArrayList();
MySqlCommand cmd;
MySqlDataReader Reader;
cmd = new MySqlCommand("SELECT firstName, lastName, login, password,userId FROM users", cnMY);
try
{
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
User usr = new User(Reader.GetValue(0).ToString(), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), Convert.ToInt32(Reader.GetValue(4)));
userList.Add(usr);
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!2", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return userList;
}
//get all vehicles for current user
public ArrayList getAllVehiclesForCurrentUser(String _id)
{
ArrayList vehList = new ArrayList();
MySqlCommand cmd;
MySqlDataReader Reader;
cmd = new MySqlCommand("SELECT veh.id,sub.imei,veh.lp,veh.name"
+ " FROM vehicle as veh"
+ " INNER JOIN (subscriber_history as sh,subscriber as sub)"
+ " on ( veh.id = sh.veh_id and sh.sc_id = sub.sc_id)"
+ " inner join( vehicle_user as vh)"
+ " on(vh.veh_id=veh.id)"
+ " Where vh.user_id=" + _id.ToString()
+ " Group by sub.imei"
+ " ORDER BY sub.imei", cnMY);
try
{
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
Vehicles veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "");
vehList.Add(veh);
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!3", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return vehList;
}
//get all vehicles that ar not assigned to current user
public ArrayList getAllOtherVehiclesForCurrentUser(String _id)
{
ArrayList vehList = new ArrayList();
MySqlCommand cmd;
MySqlDataReader Reader;
cmd = new MySqlCommand("SELECT veh.id,sub.imei,veh.lp,veh.name"
+ " FROM vehicle as veh"
+ " INNER JOIN (subscriber_history as sh,subscriber as sub)"
+ " on ( veh.id = sh.veh_id and sh.sc_id = sub.sc_id)"
+ " LEFT join( vehicle_user as vh)"
+ " on(vh.veh_id=veh.id)"
+ " WHERE veh.id NOT IN "
+ " (SELECT veh_id FROM vehicle_user "
+ " WHERE user_id =" + _id.ToString()
+ ")"
+ " Group by sub.imei"
+ " ORDER BY sub.imei", cnMY);
try
{
Reader = cmd.ExecuteReader();
while (Reader.Read())
{
Vehicles veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "");
vehList.Add(veh);
}
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!4", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return vehList;
}
// add connection between user and vehicle
public void addVehicleUserConnection(string vehId, string userId)
{
MySqlCommand cmd;
try
{
cmd = new MySqlCommand("INSERT INTO vehicle_user VALUES(" + vehId + "," + userId + ",'2007-01-01')", cnMY);
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!5", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//remove connection between user and vehicle
public void removeVehicleUserConnection(string vehId, string userId)
{
MySqlCommand cmd;
try
{
cmd = new MySqlCommand("DELETE FROM vehicle_user WHERE veh_id ='" + vehId + "' and user_id='" + userId + "'", cnMY);
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source);
MessageBox.Show("MySql connection Failed !!!!6", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}