using System; using System.Collections.Generic; using System.Text; using Npgsql; using System.Data; namespace SafeMobileLib { class PostgresDB { private NpgsqlConnection conn; //list all compatible database versions private static string[] _ver = {"1.0"}; //p_user -> root user //p_password -> root password public static bool CreateAndInitDB_v1_0(string p_server, string p_user, string p_password, string p_port) { //load and execute the SQL file return false; } //returns false if the current isntalled DB version is in _ver string bool supportedDBversion() { return false; } public PostgresDB() { } ~PostgresDB() { CloseConnection(); } public bool InitConnection(string p_server, string p_dbname, string p_user, string p_password, string p_port) { string connstring = String.Format("Server={0};Port={1};" + "User Id={2};Password={3};Database={4};", p_server, p_port, p_user, p_password, p_dbname); // Making connection with Npgsql provider conn = new NpgsqlConnection(connstring); conn.Open(); //check to see if the DB versio is supported by DLL bool support = supportedDBversion(); if (!support) { conn.Close(); return false; } return true; } //to be used by all queries returning a Int32 private Int32 execSQL_Int32(string p_query) { NpgsqlCommand cmd = new NpgsqlCommand(p_query); NpgsqlDataReader dr = cmd.ExecuteReader(); if (dr.RecordsAffected != 1) throw new Exception("execSQL_Int32: More than 1 row returned by statment"); dr.Read(); Int32 result = dr.GetInt32(0); dr.Dispose(); cmd.Dispose(); return result; } //to be used by all queries returning a string private string execSQL_string(string p_query) { return null; } public Int32 get_subscriber_count() { return execSQL_Int32("SELECT COUNT(*) from subscriber"); } //insert a position message into DB public bool insert_msg_pos(posMessage p_posMsg) { return false; } //############################################################## //get historical position for a vehicle public ArrayList get_history_positions(string p_vehName, int p_start, int p_stop) { return null; } public ArrayList get_lastPos(string p_userName) { return null; } public ArrayList get_user_vehicles(string p_userName) { return null; } public string get_vehicle_imei(string p_vehName) { return null; } //############################################################# 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 "100111": insertRFID(p_message); break; } } private void insertSchedule(string p_message) { String LAT, LNG; Double dlat=0, dlng=0; XmlDocument docXML = new XmlDocument(); try { docXML.LoadXml(p_message); } catch (Exception o) { Console.WriteLine("Error Read XML"); throw new ArgumentException(o.Message.ToString()); } XmlElement leRoot = docXML.DocumentElement; XmlAttributeCollection attr = leRoot.Attributes; LAT = attr["latitude"].InnerXml; LNG = attr["longitude"].InnerXml; LAT = LAT.Replace(',', '.'); LNG = LNG.Replace(',', '.'); try { dlat = Convert.ToDouble(LAT); dlng = Convert.ToDouble(LNG); } catch (Exception ex) { Console.WriteLine("Erorr on convert float1"); } if ((dlat > 180) || (dlng > 180)) { LAT = LAT.Replace('.', ','); LNG = LNG.Replace('.', ','); try { dlat = Convert.ToDouble(LAT); dlng = Convert.ToDouble(LNG); } catch (Exception ex) { Console.WriteLine("Erorr on convert float2"); } } if (MSSQL) { try { Double sc_ev = 0; Int32 sc_id = 0; SqlCeCommand cmd; SqlCeDataReader dr; cmd = new SqlCeCommand("select sc_id from subscriber where imei='" + attr["subscriber"].InnerXml + "'", cn); dr = cmd.ExecuteReader(); while (dr.Read()) { sc_id = dr.GetInt32(0); } dr.Close(); sc_ev = sc_id * 10000000000 + Convert.ToInt64(attr["time"].InnerXml); //cmd = new SqlCeCommand("INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,scevtime) VALUES (" + sc_id + "," + LAT + "," + LNG + "," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + "," + sc_ev.ToString() + ")", cn); //cmd.ExecuteNonQuery(); cmd = new SqlCeCommand(); cmd.Connection = cn; cmd.CommandText = "INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,scevtime) VALUES (" + sc_id + ",@lat1,@lng1," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + "," + sc_ev.ToString() + ")"; cmd.Parameters.Add("@lat1", SqlDbType.Float).Value = dlat; cmd.Parameters.Add("@lng1", SqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand(); cmd.Connection = cn; cmd.CommandText = "update lastpos set lat=@lat1, lng=@lng1, speed=" + attr["speed"].InnerXml + ", di=" + attr["di"].InnerXml + ", do=" + attr["do"].InnerXml + ", timeGMT=" + attr["time"].InnerXml + ", address='' where imei='" + attr["subscriber"].InnerXml + "' and timeGMT<" + attr["time"].InnerXml; cmd.Parameters.Add("@lat1", SqlDbType.Float).Value = dlat; cmd.Parameters.Add("@lng1", SqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); //cmd = new SqlCeCommand("update lastpos set lat=" + LAT + ", lng=" + LNG + ", speed=" + attr["speed"].InnerXml + ", di=" + attr["di"].InnerXml + ", do=" + attr["do"].InnerXml + ", timeGMT=" + attr["time"].InnerXml + " where imei='" + attr["subscriber"].InnerXml + "' and timeGMT<" + attr["time"].InnerXml, cn); //cmd.ExecuteNonQuery(); 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); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: insertSchedule " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { try { /*MySqlCommand cmd; string query = "call insert_msg_pos('" + attr["subscriber"].InnerXml + "','" + LAT + "','" + LNG + "','" + 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();*/ MySqlCommand cmd = new MySqlCommand(); cmd.Connection = cnMY; cmd.CommandText = "call insert_msg_pos('" + attr["subscriber"].InnerXml + "',?lat1,?lng1,'" +attr["speed"].InnerXml + "','" +attr["dgr"].InnerXml + "','" +attr["di"].InnerXml + "','" +attr["do"].InnerXml + "','" +attr["time"].InnerXml + "','0',null);"; cmd.Parameters.Add("?lat1", MySqlDbType.Float).Value = dlat; cmd.Parameters.Add("?lng1", MySqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); } catch (MySqlException o) { //if (o.Number == (int)MySqlErrorCode.DuplicateKeyEntry) Console.WriteLine("Da ma e duplicate KEY1"); Console.WriteLine("X"+(Int16)o.Number+"File: SMdb_access.csX Meth: insertSchedule " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } } private void insertRFID(string p_message) { String LAT, LNG; Double dlat = 0, dlng = 0; Int32 sc_id = 0; XmlDocument docXML = new XmlDocument(); try { docXML.LoadXml(p_message); } catch (Exception o) { Console.WriteLine("Error Read XML"); throw new ArgumentException(o.Message.ToString()); } XmlElement leRoot = docXML.DocumentElement; XmlAttributeCollection attr = leRoot.Attributes; LAT = attr["latitude"].InnerXml; LNG = attr["longitude"].InnerXml; LAT = LAT.Replace(',', '.'); LNG = LNG.Replace(',', '.'); try { dlat = Convert.ToDouble(LAT); dlng = Convert.ToDouble(LNG); } catch (Exception ex) { Console.WriteLine("Erorr on convert float1"); } if ((dlat > 180) || (dlng > 180)) { LAT = LAT.Replace('.', ','); LNG = LNG.Replace('.', ','); try { dlat = Convert.ToDouble(LAT); dlng = Convert.ToDouble(LNG); } catch (Exception ex) { Console.WriteLine("Erorr on convert float2"); } } if (MSSQL) { Double sc_ev = 0; SqlCeCommand cmd; try { SqlCeDataReader dr; cmd = new SqlCeCommand("select sc_id from subscriber where imei='" + attr["subscriber"].InnerXml + "'", cn); dr = cmd.ExecuteReader(); while (dr.Read()) { sc_id = dr.GetInt32(0); } dr.Close(); sc_ev = sc_id * 10000000000 + Convert.ToInt64(attr["time"].InnerXml); cmd = new SqlCeCommand("INSERT INTO rfidnew (sc_id,rfid) VALUES (" + sc_id + ",'" + attr["RFID"].InnerXml + "')", cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand(); cmd.Connection = cn; cmd.CommandText = "update lastpos set lat=@lat1, lng=@lng1, speed=" + attr["speed"].InnerXml + ", di=" + attr["di"].InnerXml + ", do=" + attr["do"].InnerXml + ", timeGMT=" + attr["time"].InnerXml + ", address='' where imei='" + attr["subscriber"].InnerXml + "' and timeGMT<" + attr["time"].InnerXml; cmd.Parameters.Add("@lat1", SqlDbType.Float).Value = dlat; cmd.Parameters.Add("@lng1", SqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand(); cmd.Connection = cn; cmd.CommandText = "INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,rfid,scevtime) VALUES (" + sc_id + ",@lat1,@lng1," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + ",'" + attr["RFID"].InnerXml + "'," + sc_ev.ToString() + ")"; cmd.Parameters.Add("@lat1", SqlDbType.Float).Value = dlat; cmd.Parameters.Add("@lng1", SqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); //cmd = new SqlCeCommand("update lastpos set lat=" + LAT + ", lng=" + LNG + ", speed=" + attr["speed"].InnerXml + ", di=" + attr["di"].InnerXml + ", do=" + attr["do"].InnerXml + ", timeGMT=" + attr["time"].InnerXml + " where imei='" + attr["subscriber"].InnerXml + "' and timeGMT<" + attr["time"].InnerXml, cn); //cmd.ExecuteNonQuery(); //cmd = new SqlCeCommand("INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,rfid,scevtime) VALUES (" + sc_id + "," + LAT + "," + LNG + "," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + ",'" + attr["RFID"].InnerXml + "'," + sc_ev.ToString() + ")", cn); //cmd.ExecuteNonQuery(); } catch (SqlCeException o) { if (o.NativeError == 25016) { Console.WriteLine("Double Messages"); Double pas = 0; Boolean outwhile = false; while ((!outwhile) && (pas < 0.099)) { try { pas = pas + 0.001; sc_ev = sc_ev + 0.001; cmd = new SqlCeCommand(); cmd.Connection = cn; cmd.CommandText = "INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,rfid,scevtime) VALUES (" + sc_id + ",@lat1,@lng1," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + ",'" + attr["RFID"].InnerXml + "',@sc_ev)"; cmd.Parameters.Add("@lat1", SqlDbType.Float).Value = dlat; cmd.Parameters.Add("@lng1", SqlDbType.Float).Value = dlng; cmd.Parameters.Add("@sc_ev", SqlDbType.Float).Value = sc_ev; cmd.Prepare(); cmd.ExecuteNonQuery(); outwhile = true; } catch (SqlCeException o2) { if (o2.NativeError == 25016) ; else { Console.WriteLine("File: SMdb_access.cs Meth: insertSchedule " + o.Message + o.StackTrace); outwhile = true; throw new ArgumentException(o.Message.ToString()); } } } } else { Console.WriteLine("File: SMdb_access.cs Meth: insertSchedule " + o.Message + o.StackTrace); throw new ArgumentException(o.Message.ToString()); } } } else { String sc_ev =""; MySqlCommand cmd; try { MySqlDataReader dr; cmd = new MySqlCommand("select sc_id from subscriber where imei='" + attr["subscriber"].InnerXml + "'", cnMY); dr = cmd.ExecuteReader(); while (dr.Read()) { sc_id = dr.GetInt32(0); } dr.Close(); sc_ev = sc_id.ToString() + attr["time"].InnerXml + "00"; if (sc_ev.Length == 13) sc_ev = "000" + sc_ev; if (sc_ev.Length == 14) sc_ev = "00" + sc_ev; if (sc_ev.Length == 15) sc_ev = "0" + sc_ev; cmd = new MySqlCommand(); cmd.Connection = cnMY; cmd.CommandText = "update lastpos set lat=?lat1, lng=?lng1, speed=" + attr["speed"].InnerXml + ", di=" + attr["di"].InnerXml + ", do=" + attr["do"].InnerXml + ", timeGMT=" + attr["time"].InnerXml + ", address='' where imei='" + attr["subscriber"].InnerXml + "' and timeGMT<" + attr["time"].InnerXml; cmd.Parameters.Add("?lat1", MySqlDbType.Float).Value = dlat; cmd.Parameters.Add("?lng1", MySqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); cmd = new MySqlCommand("INSERT INTO rfidnew VALUES (null," + sc_id + ",'" + attr["RFID"].InnerXml + "')", cnMY); cmd.ExecuteNonQuery(); cmd = new MySqlCommand(); cmd.Connection = cnMY; cmd.CommandText = "INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,rfid,scevtime) VALUES (" + sc_id + ",?lat1,?lng1," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + ",'" + attr["RFID"].InnerXml + "'," + sc_ev + ")"; cmd.Parameters.Add("?lat1", MySqlDbType.Float).Value = dlat; cmd.Parameters.Add("?lng1", MySqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); //cmd = new MySqlCommand("INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,rfid,scevtime) VALUES (" + sc_id + "," + LAT + "," + LNG + "," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + ",'" + attr["RFID"].InnerXml + "'," + sc_ev + ")", cnMY); //cmd.ExecuteNonQuery(); } catch (MySqlException o) { if (o.Number == (int)MySqlErrorCode.DuplicateKeyEntry) { Console.WriteLine("Double Messages"); int pas = 0; String str = ""; Boolean outwhile = false; while ((!outwhile)&&(pas<99)) { try { pas++; if (pas < 10) str = "0" + pas.ToString(); else str = pas.ToString(); sc_ev = sc_ev.Remove(sc_ev.Length - 2); sc_ev = sc_ev + str; cmd = new MySqlCommand(); cmd.Connection = cnMY; cmd.CommandText = "INSERT INTO messages (sc_id,lat,lng,speed,di,do,timeGMT,rfid,scevtime) VALUES (" + sc_id + ",?lat1,?lng1," + attr["speed"].InnerXml + "," + attr["di"].InnerXml + "," + attr["do"].InnerXml + "," + attr["time"].InnerXml + ",'" + attr["RFID"].InnerXml + "'," + sc_ev + ")"; cmd.Parameters.Add("?lat1", MySqlDbType.Float).Value = dlat; cmd.Parameters.Add("?lng1", MySqlDbType.Float).Value = dlng; cmd.Prepare(); cmd.ExecuteNonQuery(); outwhile = true; } catch (MySqlException o2) { if (o2.Number == (int)MySqlErrorCode.DuplicateKeyEntry) ; else { Console.WriteLine("File: SMdb_access.cs Meth: insertSchedule " + o.Message.ToString()); outwhile = true; throw new ArgumentException(o.Message.ToString()); } } } } else { Console.WriteLine("File: SMdb_access.cs Meth: insertSchedule " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } } } public ArrayList get_all_IMEI(int gateway_id) { //"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" if (MSSQL) { ArrayList ret = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader dr; String Tmp = "(no imei)"; try { cmd = new SqlCeCommand("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", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { Tmp = dr.GetString(0); ret.Add(Tmp); } dr.Close(); } catch (Exception o) { //Console.Write("File: SMdb_access.cs Meth: get_IMEI : "); //Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { //Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } else { 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) { if (MSSQL) { SqlCeCommand 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 SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); query = "INSERT INTO logmototurbo (imei,timeGMT,status) VALUES('" + p_IMEI + "'," + DateTo70Format(DateTime.Now.ToUniversalTime()) + "," + status + ")"; Console.WriteLine(query); cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception 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 SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); query = "INSERT INTO logmototurbo (imei,timeGMT,status) VALUES('" + p_IMEI + "'," + DateTo70Format(DateTime.Now.ToUniversalTime()) + "," + status + ")"; Console.WriteLine(query); cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString()); } } } else { 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()); } } } } public int get_status(String IMEI) { if (MSSQL) { int status = -1; SqlCeCommand cmd; SqlCeDataReader dr; try { cmd = new SqlCeCommand("SELECT status from mototurbo where imei='" + IMEI + "'", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { status = dr.GetInt32(0); } dr.Close(); } catch (Exception o) { //Console.Write("File: SMdb_access.cs Meth: get_IMEI : "); //Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { //Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return status; } else { 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 Boolean Check_RFID_Exist(String RFID,Int32 Unique_id) { Boolean exist = false; if (MSSQL) { int status = -1; SqlCeCommand cmd; SqlCeDataReader dr; try { cmd = new SqlCeCommand("SELECT count(*) from passenger where rfid='" + RFID + "' and id<>"+Unique_id, cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { status = dr.GetInt32(0); } dr.Close(); } catch (Exception o) { //Console.Write("File: SMdb_access.cs Meth: get_IMEI : "); //Console.WriteLine(o.Message.ToString()); } if (status > 0) exist = true; } catch (Exception o) { //Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return exist; } else { int status = -1; MySqlCommand cmd; MySqlDataReader dr; try { cmd = new MySqlCommand("SELECT count(*) from passenger where rfid='" + RFID + "' and id<>"+Unique_id, 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()); } if (status > 0) exist = true; } catch (MySqlException o) { //Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return exist; } } public ArrayList get_sms_todeliver(int gateway_id) { if (MSSQL) { ArrayList ret = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader dr; smsmessage obj; String Tmp = "(no imei)"; try { cmd = new SqlCeCommand("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", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { obj = new smsmessage(); obj.imei_dest = dr.GetString(0); obj.timeGMT = (uint)dr.GetInt32(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 (Exception o) { //Console.Write("File: SMdb_access.cs Meth: get_IMEI : "); //Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { //Console.WriteLine("File: SMdb_access.cs Meth: get_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } else { 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 ArrayList get_sms_todeliverIP(String gateway_IP) { if (MSSQL) { ArrayList ret = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader dr; smsmessage obj; String Tmp = "(no imei)"; try { cmd = new SqlCeCommand("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_ip='" + gateway_IP + "' and s.sc_id=m.sc_id_dest ORDER BY m.timeGMT", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { obj = new smsmessage(); obj.imei_dest = dr.GetString(0); obj.timeGMT = (uint)dr.GetInt32(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 (Exception o) { Console.Write("File: SMdb_access.cs Meth: get_sms_todeliverIP : "); Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_sms_todeliverIP : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } else { 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_ip='" + gateway_IP + "' 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_sms_todeliverIP : "); Console.WriteLine(o.Message.ToString()); } } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_sms_todeliverIP : " + 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 if (MSSQL) { SqlCeCommand cmd; try { string query = "UPDATE sms SET status=" + status + " where idx=" + idxmess; Console.WriteLine(query); cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString()); } } else { 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) { if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader dr; Int32 sc_id = 0; try { cmd = new SqlCeCommand("SELECT sc_id from subscriber where imei='" + imei + "'", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { sc_id = dr.GetInt32(0); } dr.Close(); } catch (Exception o) { Console.Write("File: SMdb_access.cs Meth: insert_sms_received : "); Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: insert_sms_received : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } try { string query = "INSERT INTO sms (timeGMT,sc_id_sour,sc_id_dest,mess,status,email) VALUES(" + DateTo70Format(DateTime.Now.ToUniversalTime()) + "," + sc_id + ",0,'" + mess + "'," + type + ",'')"; if (type == 7) query = "INSERT INTO sms (timeGMT,sc_id_sour,sc_id_dest,mess,status,email) VALUES(" + DateTo70Format(DateTime.Now.ToUniversalTime()) + ",0," + sc_id + ",'" + mess + "'," + type + ",'" + emailaddr + "')"; Console.WriteLine(query); cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString()); } } else { 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: insert_sms_received : "); Console.WriteLine(o.Message.ToString()); } } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: insert_sms_received : " + 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) { if (MSSQL) { String Retur = ""; try { SqlCeCommand cmd; SqlCeDataReader dr; cmd = new SqlCeCommand("SELECT wait_name from run_wait where veh_name='" + Code + "'", cn); dr = cmd.ExecuteReader(); if (dr.Read()) { Retur = dr.GetString(0); } dr.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: ReadTimeLimit " + o.Message.ToString()); } return Retur; } else { 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) { if (MSSQL) { SqlCeCommand cmd; string query = ""; try { query = "DELETE from run_wait where veh_name='" + Code + "'"; cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); query = "INSERT INTO run_wait VALUES('" + Code + "'," + Time + ")"; cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: run_wait " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { 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) { if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader dr; Int32 sc_id = 0; try { cmd = new SqlCeCommand("SELECT sc_id from subscriber where imei='" + imei + "'", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { sc_id = dr.GetInt32(0); } dr.Close(); } catch (Exception o) { Console.Write("File: SMdb_access.cs Meth: insert_sms_sent2email : "); Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: insert_sms_sent2email : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } try { string query = "INSERT INTO sms (timeGMT,sc_id_sour,sc_id_dest,mess,status,email) VALUES(" + DateTo70Format(DateTime.Now.ToUniversalTime()) + "," + sc_id + ",0,'" + mess + "',5,'" + email + "')"; Console.WriteLine(query); cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString()); } } else { 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: insert_sms_sent2email : "); Console.WriteLine(o.Message.ToString()); } } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: insert_sms_sent2email : " + 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 (MSSQL) { if (cn != null) cn.Close(); } else { if (cnMY != null) cnMY.Close(); } } public void updateDi(string p_IMEI, int di) { if (MSSQL) { SqlCeCommand cmd; try { string query = "UPDATE mototurbo SET di =" + di + " where imei='" + p_IMEI + "'"; Console.WriteLine(query); cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: UPDATE STATUS " + o.Message.ToString()); } } else { 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, Int32 DI,Boolean motoTRBO) { String SerialNr = ""; if (!motoTRBO) SerialNr = _serialNumber; if (MSSQL) { SqlCeCommand cmd=null; try { cmd = new SqlCeCommand("SELECT count(imei) FROM subscriber where imei='" + _imei + "'", cn); object temp = cmd.ExecuteScalar(); if (temp.ToString() == "0") { string id_subscriber = "", id_vehicle = "", id_user = ""; cmd = new SqlCeCommand("INSERT INTO vehicle (lp,name,driver_id,time_route) VALUES('" + SerialNr + "' ,'" + _name + "',1,0)", cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("INSERT INTO subscriber (imei) VALUES('" + _imei + "')", cn); cmd.ExecuteNonQuery(); //get vehicle id cmd = new SqlCeCommand("SELECT max(id) FROM vehicle ", cn); id_vehicle = cmd.ExecuteScalar().ToString(); //get subscriber id cmd = new SqlCeCommand("SELECT max(sc_id) FROM subscriber ", cn); id_subscriber = cmd.ExecuteScalar().ToString(); //get user id cmd = new SqlCeCommand("SELECT userId FROM users Where login ='" + _user + "'", cn); id_user = cmd.ExecuteScalar().ToString(); if (id_vehicle.Length > 0 && id_subscriber.Length > 0 && id_user.Length > 0) { cmd = new SqlCeCommand("INSERT INTO vehicle_user (veh_id,user_id,assigned) VALUES(" + id_vehicle + "," + id_user + ",'2007-01-01')", cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("INSERT INTO subscriber_history (sc_id,veh_id,assigned) VALUES(" + id_subscriber + "," + id_vehicle + ",'2007-01-01')", cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM lastpos where imei='" + _imei + "'", cn); cmd.ExecuteNonQuery(); SqlCeCommand cmd2 = new SqlCeCommand(); cmd2.Connection = cn; cmd2.CommandText = "INSERT INTO lastpos (imei,lastPos_fk,lat,lng,speed,heading,di,do,timeGMT) VALUES('" + _imei + "',1,@lat1,@lng1,0,0,0,0,0)";//42.06054,-88.02397 cmd2.Parameters.Add("@lat1", SqlDbType.Float).Value = 42.06054; cmd2.Parameters.Add("@lng1", SqlDbType.Float).Value = -88.02397; cmd2.Prepare(); cmd2.ExecuteNonQuery(); if (!motoTRBO) { cmd = new SqlCeCommand("INSERT INTO emergdi (sc_id,DI) VALUES(" + id_subscriber + "," + DI.ToString() + ")", cn); 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 (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); Console.WriteLine(cmd.CommandText); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } return true; } else { 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,'" + SerialNr + "' ,'" + _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(); MySqlCommand cmd2 = new MySqlCommand(); cmd2.Connection = cnMY; cmd2.CommandText = "INSERT INTO lastpos (imei,lastPos_fk,lat,lng,speed,heading,di,do,timeGMT) VALUES('" + _imei + "',1,?lat1,?lng1,0,0,0,0,0)"; cmd2.Parameters.Add("?lat1", MySqlDbType.Float).Value = 42.06054; cmd2.Parameters.Add("?lng1", MySqlDbType.Float).Value = -88.02397; cmd2.Prepare(); cmd2.ExecuteNonQuery(); if (!motoTRBO) { cmd = new MySqlCommand("INSERT INTO emergdi (sc_id,DI) VALUES(" + id_subscriber + "," + DI.ToString() + ")", 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 Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } return true; } } public void Insert_Zone_Alarm(Int32 p_sc_id, UInt32 p_timeGMT, Int32 p_zone_id, Int32 p_action,Boolean Zone) { string query = ""; if (MSSQL) { try { SqlCeCommand cmd; if (Zone) query = "INSERT INTO geozoneinout (sc_id,timeGMT,zone_id,action,type) VALUES(" + p_sc_id + "," + p_timeGMT + "," + p_zone_id + "," + p_action + ",1)"; else query = "INSERT INTO geozoneinout (sc_id,timeGMT,zone_id,action,type) VALUES(" + p_sc_id + "," + p_timeGMT + "," + p_zone_id + "," + p_action + ",2)"; cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: Insert_Zone_Alarm " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { try { MySqlCommand cmd; if (Zone) query = "INSERT INTO geozoneinout VALUES(" + p_sc_id + "," + p_timeGMT + "," + p_zone_id + "," + p_action + ",null,0,1)"; else query = "INSERT INTO geozoneinout VALUES(" + p_sc_id + "," + p_timeGMT + "," + p_zone_id + "," + p_action + ",null,0,2)"; cmd = new MySqlCommand(query, cnMY); cmd.ExecuteNonQuery(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: Insert_Zone_Alarm " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } } public int getSC_ID_from_IMEI(string Imei) { int temp = 0; if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; try { cmd = new SqlCeCommand("SELECT sc_id from subscriber where imei='" + Imei + "'", cn); Reader = cmd.ExecuteReader(); if (Reader.Read()) { if (Reader.IsDBNull(0)) temp = 0; else temp = Reader.GetInt32(0); } Reader.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: getSC_ID_from_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; MySqlDataReader Reader; try { /* cmd = new MySqlCommand("SELECT sc_id from subscriber where imei='" + Imei + "'", cnMY); try { temp = (int)cmd.ExecuteScalar(); } catch (MySqlException o) { Console.Write("File: SMdb_access.cs Meth: getSC_ID_from_IMEI : "); Console.WriteLine(o.Message.ToString()); }*/ cmd = new MySqlCommand("SELECT sc_id from subscriber where imei='" + Imei + "'", cnMY); Reader = cmd.ExecuteReader(); if (Reader.Read()) { if (Reader.IsDBNull(0)) temp = 0; else temp = Reader.GetInt32(0); } Reader.Close(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: getSC_ID_from_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } return temp; } public void assign_GW_ip_2_unit(string imei, string gateway_ip) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("INSERT INTO subs_gateway (sc_id, gateway_ip) VALUES(" + getSC_ID_from_IMEI(imei) + ",'" + gateway_ip + "')", cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: run_wait " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; try { cmd = new MySqlCommand("INSERT INTO subs_gateway (sc_id,gateway_ip) VALUES(" + getSC_ID_from_IMEI(imei) + ",'" + gateway_ip + "')", 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 ArrayList get_all_IMEI_by_GW_ip(string gateway_ip) { if (MSSQL) { ArrayList ret = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader dr; String Tmp = "(no imei)"; try { cmd = new SqlCeCommand("SELECT s.imei from subscriber s, subs_gateway g where s.sc_id=g.sc_id and g.gateway_ip='" + gateway_ip + "' ORDER BY s.imei", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { Tmp = dr.GetString(0); ret.Add(Tmp); } dr.Close(); } catch (Exception o) { Console.Write("File: SMdb_access.cs Meth: get_all_IMEI_by_GW_ip : "); Console.WriteLine(o.Message.ToString()); } } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_all_IMEI_by_GW_ip : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } else { 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_ip='" + gateway_ip + "' 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_all_IMEI_by_GW_ip : "); Console.WriteLine(o.Message.ToString()); } } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_all_IMEI_by_GW_ip : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } } public String get_IP_for_IMEI(string imei) { String Tmp = ""; if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; try { cmd = new SqlCeCommand("SELECT gateway_ip from subs_gateway where sc_id=" + getSC_ID_from_IMEI(imei), cn); Reader = cmd.ExecuteReader(); if (Reader.Read()) { if (Reader.IsDBNull(0)) Tmp = ""; else Tmp = Reader.GetString(0); } Reader.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_IP_for_IMEI : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; MySqlDataReader Reader; try { cmd = new MySqlCommand("SELECT gateway_ip from subs_gateway where sc_id=" + getSC_ID_from_IMEI(imei), cnMY); Reader = cmd.ExecuteReader(); if (Reader.Read()) { if (Reader.IsDBNull(0)) Tmp = ""; else Tmp = Reader.GetString(0); } Reader.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_IP_for_IMEI : " + o.Message.ToString() + o.StackTrace.ToString()); throw new ArgumentException(o.Message.ToString()); } } return Tmp; } public void delete_From_GW(string imei) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("DELETE FROM subs_gateway where sc_id = " + getSC_ID_from_IMEI(imei), cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: run_wait " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; try { cmd = new MySqlCommand("DELETE FROM subs_gateway where sc_id = " + getSC_ID_from_IMEI(imei), 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_Speed_Alarm(Int32 p_sc_id, UInt32 p_timeGMT, Int32 p_speed) { if (MSSQL) { try { SqlCeCommand cmd; string query = "INSERT INTO speedalarm (sc_id,timeGMT,speed,preview) VALUES(" + p_sc_id + "," + p_timeGMT + "," + p_speed + ",0)"; cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: Insert_Zone_Alarm " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { try { MySqlCommand cmd; string query = "INSERT INTO speedalarm VALUES(" + p_sc_id + "," + p_timeGMT + "," + p_speed + ",0,null,'" + "no address" + "')"; cmd = new MySqlCommand(query, cnMY); cmd.ExecuteNonQuery(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: Insert_Zone_Alarm " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } } public void Insert_Emerg_Alarm(Int32 p_sc_id, UInt32 p_timeGMT) { if (MSSQL) { try { SqlCeCommand cmd; string query = "INSERT INTO emergalarm (sc_id,timeGMT,preview) VALUES(" + p_sc_id + "," + p_timeGMT + ",0)"; cmd = new SqlCeCommand(query, cn); cmd.ExecuteNonQuery(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: Insert_Zone_Alarm " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { try { MySqlCommand cmd; string query = "INSERT INTO emergalarm VALUES(" + p_sc_id + "," + p_timeGMT + ",0,null,'" + "no address" + "')"; cmd = new MySqlCommand(query, cnMY); cmd.ExecuteNonQuery(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: Insert_Zone_Alarm " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } } public ArrayList get_all_zones() { if (MSSQL) { ArrayList ret = new ArrayList(); try { SqlCeCommand cmd; SqlCeDataReader dr; cmd = new SqlCeCommand("select name,lat,lng,lat2,lng2,idx from zone ORDER BY name", cn); dr = cmd.ExecuteReader(); while (dr.Read()) { Zones tmp = new Zones(dr.GetString(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetDouble(3), dr.GetDouble(4), dr.GetInt32(5)); ret.Add(tmp); } dr.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_zones_with_id " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } else { ArrayList ret = new ArrayList(); try { MySqlCommand cmd; MySqlDataReader dr; cmd = new MySqlCommand("select name,lat,lng,lat2,lng2,idx from zone ORDER BY name", cnMY); dr = cmd.ExecuteReader(); while (dr.Read()) { Zones tmp = new Zones(dr.GetString(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetDouble(3), dr.GetDouble(4), dr.GetInt32(5)); ret.Add(tmp); } dr.Close(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_vehicles " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } } public ArrayList get_all_landmarks() { if (MSSQL) { ArrayList ret = new ArrayList(); try { SqlCeCommand cmd; SqlCeDataReader dr; cmd = new SqlCeCommand("select name,lat,lng,idx from place ORDER BY name", cn); dr = cmd.ExecuteReader(); while (dr.Read()) { LandMark tmp = new LandMark(dr.GetString(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetInt32(3)); ret.Add(tmp); } dr.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_zones_with_id " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } else { ArrayList ret = new ArrayList(); try { MySqlCommand cmd; MySqlDataReader dr; cmd = new MySqlCommand("select name,lat,lng,idx from place ORDER BY name", cnMY); dr = cmd.ExecuteReader(); while (dr.Read()) { LandMark tmp = new LandMark(dr.GetString(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetInt32(3)); ret.Add(tmp); } dr.Close(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_vehicles " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } return ret; } } public Boolean addRFIDToDb(String _RFID, String _namePassenger, Int32 sc_id) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("INSERT INTO passenger (rfid,name,sc_id) VALUES('" + _RFID + "' ,'" + _namePassenger + "'," + sc_id + ")", cn); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); return false; } return true; } else { MySqlCommand cmd; try { cmd = new MySqlCommand("INSERT INTO passenger VALUES('" + _RFID + "' ,'" + _namePassenger + "',"+sc_id+",null)", cnMY); cmd.ExecuteNonQuery(); } catch (MySqlException ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); return false; } return true; } } public Boolean DeleteRFID(Int32 _unique_id) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("DELETE FROM passenger where id=" + _unique_id, cn); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); return false; } return true; } else { MySqlCommand cmd; try { cmd = new MySqlCommand("DELETE FROM passenger where id=" + _unique_id, cnMY); cmd.ExecuteNonQuery(); } catch (MySqlException ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); return false; } return true; } } public Boolean UpdateRFID(Int32 _unique_id, String _RFID, String _namePassenger, Int32 sc_id) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("UPDATE passenger SET rfid='" + _RFID + "' , name='" + _namePassenger + "', sc_id=" + sc_id + " where id="+_unique_id, cn); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); return false; } return true; } else { MySqlCommand cmd; try { cmd = new MySqlCommand("UPDATE passenger SET rfid='" + _RFID + "' , name='" + _namePassenger + "', sc_id=" + sc_id + " where id=" + _unique_id, cnMY); cmd.ExecuteNonQuery(); } catch (MySqlException ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); return false; } return true; } } public void deleteVehicle(String _imei) { if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; try { String scid = "0"; String vehid = "0"; String vehname = "0"; cmd = new SqlCeCommand("SELECT count(imei) FROM subscriber where imei='" + _imei + "'", cn); object temp = cmd.ExecuteScalar(); if (temp.ToString() != "0") { cmd = new SqlCeCommand("DELETE FROM lastpos where imei='" + _imei + "'", cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("SELECT sc_id FROM subscriber where imei='" + _imei + "'", cn); Reader = cmd.ExecuteReader(); while (Reader.Read()) { scid = Reader.GetInt32(0).ToString(); } Reader.Close(); cmd = new SqlCeCommand("SELECT veh_id FROM subscriber_history where sc_id=" + scid, cn); Reader = cmd.ExecuteReader(); while (Reader.Read()) { vehid = Reader.GetInt32(0).ToString(); } Reader.Close(); cmd = new SqlCeCommand("SELECT name FROM vehicle where id=" + vehid, cn); Reader = cmd.ExecuteReader(); while (Reader.Read()) { vehname = Reader.GetString(0); } Reader.Close(); cmd = new SqlCeCommand("DELETE FROM vehicle where id=" + vehid, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM vehicle_user where veh_id=" + vehid, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM subscriber_history where veh_id=" + vehid, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM subscriber where sc_id=" + scid, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM subs_gateway where sc_id=" + scid, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM emergdi where sc_id=" + scid, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("DELETE FROM messages where sc_id=" + scid, cn); cmd.ExecuteNonQuery(); try { cmd = new SqlCeCommand("DELETE FROM subs_gateway where sc_id=" + scid, cn); cmd.ExecuteNonQuery(); } catch { } MessageBox.Show("Delete IMEI finish."); } else { MessageBox.Show("Vehicle Not in db", "error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { 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 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("DELETE FROM emergdi where sc_id=" + scid, cnMY); cmd.ExecuteNonQuery(); 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 Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public void editVehicle(String _id, String _name, Int32 _DI, String _lp) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("select count(id) from vehicle where id=\'" + _id + "\'", cn); object temp = cmd.ExecuteScalar(); cmd = new SqlCeCommand("select sc_id from subscriber_history where veh_id=\'" + _id + "\'", cn); object tmp_sc_id = cmd.ExecuteScalar(); if (Convert.ToInt32(temp) > 0) { cmd = new SqlCeCommand("UPDATE vehicle SET name='" + _name + "',lp='" + _lp + "' where id=" + _id, cn); cmd.ExecuteNonQuery(); cmd = new SqlCeCommand("update emergdi SET DI=" + _DI.ToString() + " where sc_id=" + Convert.ToInt32(tmp_sc_id), cn); if (cmd.ExecuteNonQuery() == 0) { cmd = new SqlCeCommand("insert into emergdi (sc_id,DI) VALUES(" + Convert.ToInt32(tmp_sc_id) + "," + _DI.ToString() + ")", cn); 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 (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MySqlCommand cmd; try { cmd = new MySqlCommand("select count(id) from vehicle where id=\'" + _id + "\'", cnMY); object temp = cmd.ExecuteScalar(); cmd = new MySqlCommand("select sc_id from subscriber_history where veh_id=\'" + _id + "\'", cnMY); object tmp_sc_id = cmd.ExecuteScalar(); if (Convert.ToInt32(temp) > 0) { cmd = new MySqlCommand("UPDATE vehicle SET name='" + _name + "' where id=" + _id, cnMY); cmd.ExecuteNonQuery(); cmd = new MySqlCommand("update emergdi SET DI=" + _DI.ToString() + " where sc_id=" + Convert.ToInt32(tmp_sc_id), cnMY); //cmd.ExecuteNonQuery(); if (cmd.ExecuteNonQuery() == 0) { cmd = new MySqlCommand("insert into emergdi (sc_id,DI) VALUES(" + Convert.ToInt32(tmp_sc_id) + "," + _DI.ToString() + ")", 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 Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public Hashtable get_Vechicle_and_zone() { Hashtable ret = new Hashtable(); if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader dr; try { cmd = new SqlCeCommand("SELECT l.imei, l.lat, l.lng, s.sc_id,v.name from lastpos l, subscriber s, subscriber_history h,vehicle v where l.imei = s.imei and h.sc_id=s.sc_id and h.veh_id=v.id", cn); try { dr = cmd.ExecuteReader(); while (dr.Read()) { Vehicle_with_zone obj = new Vehicle_with_zone(dr.GetInt32(3), dr.GetString(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetString(4)); ret.Add(dr.GetString(0),obj); } //Clean up. dr.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_Vechicle_and_zone dr : "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_Vechicle_and_zone SqlCeCommand: "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; MySqlDataReader dr; try { //cmd = new MySqlCommand("SELECT l.imei, l.lat, l.lng, s.sc_id from lastpos l, subscriber s where l.imei = s.imei", cnMY); cmd = new MySqlCommand("SELECT l.imei, l.lat, l.lng, s.sc_id,v.name from lastpos l, subscriber s, subscriber_history h,vehicle v where l.imei = s.imei and h.sc_id=s.sc_id and h.veh_id=v.id", cnMY); try { dr = cmd.ExecuteReader(); while (dr.Read()) { Vehicle_with_zone obj = new Vehicle_with_zone(dr.GetInt32(3), dr.GetString(0), dr.GetDouble(1), dr.GetDouble(2), dr.GetString(4)); ret.Add(dr.GetString(0), obj); } //Clean up. dr.Close(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_Vechicle_and_zone dr : "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_Vechicle_and_zone MySqlCommand: "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } return ret; } public Hashtable get_sc_id_and_DI() { Hashtable ret = new Hashtable(); if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader dr; try { cmd = new SqlCeCommand("SELECT sc_id,DI from emergdi", cn); dr = cmd.ExecuteReader(); while (dr.Read()) { ret.Add(dr.GetInt32(0), dr.GetInt32(1)); } //Clean up. dr.Close(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_sc_id_and_DI SqlCeCommand: "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; MySqlDataReader dr; try { cmd = new MySqlCommand("SELECT sc_id,DI from emergdi", cnMY); dr = cmd.ExecuteReader(); while (dr.Read()) { ret.Add(dr.GetInt32(0), dr.GetInt32(1)); } dr.Close(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_Vechicle_and_zone MySqlCommand: "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } return ret; } public ArrayList getAllVehicles() { Vehicles veh; if (MSSQL) { ArrayList vehList = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader Reader; /* cmd = new SqlCeCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,em.DI" + " FROM vehicle as veh" + " INNER JOIN subscriber_history as sh ON (veh.id = sh.veh_id) INNER JOIN subscriber as sub" + " on (sh.sc_id = sub.sc_id) LEFT JOIN emergdi as em on (sub.sc_id = em.sc_id)" + " Group by sub.imei,veh.id,veh.lp,veh.name,em.DI" + " ORDER BY sub.imei", cn);*/ cmd = new SqlCeCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,em.DI" + " FROM vehicle as veh" + " INNER JOIN subscriber_history as sh ON (veh.id = sh.veh_id) INNER JOIN subscriber as sub" + " on (sh.sc_id = sub.sc_id) LEFT JOIN emergdi as em on (sub.sc_id = em.sc_id)" + " Group by sub.imei,veh.id,veh.lp,veh.name,em.DI" + " ORDER BY sub.imei", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { if (Reader.IsDBNull(4)) veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", 0); else veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", Reader.GetInt32(4)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine("1" + ee.Message + "\n" + ee.StackTrace); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } else { ArrayList vehList = new ArrayList(); MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,e.DI" + " 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 (emergdi as e)" + " on (sub.sc_id = e.sc_id)" + " Group by sub.imei" + " ORDER BY sub.imei", cnMY); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { if (Reader.IsDBNull(4)) veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", 0); else veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", Reader.GetInt32(4)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine("1"+ee.Message + "\n" + ee.StackTrace); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } } public ArrayList getAllVehicle_sc_id() { ArrayList vehList = new ArrayList(); if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT veh.name,sh.sc_id" + " FROM vehicle as veh" + " INNER JOIN subscriber_history as sh ON (veh.id = sh.veh_id)" + " ORDER BY veh.name", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { Vehicle_sc_id veh = new Vehicle_sc_id(Reader.GetInt32(1),Reader.GetString(0)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } else { MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT veh.name,sh.sc_id" + " FROM vehicle as veh" + " INNER JOIN subscriber_history as sh ON (veh.id = sh.veh_id)" + " ORDER BY veh.name", cnMY); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { Vehicle_sc_id veh = new Vehicle_sc_id(Reader.GetInt32(1), Reader.GetString(0)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } } public ArrayList getAllRFID() { ArrayList RfIDList = new ArrayList(); if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT pa.id,pa.rfid,pa.name,veh.name,pa.sc_id" + " FROM passenger as pa" + " INNER JOIN subscriber_history as sh ON (pa.sc_id = sh.sc_id) INNER JOIN vehicle as veh" + " on (sh.veh_id = veh.id)" + " ORDER BY pa.id", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { RFIDs rfid = new RFIDs(Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetInt32(4),Reader.GetInt32(0)); RfIDList.Add(rfid); } } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return RfIDList; } else { MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT pa.id,pa.rfid,pa.name,veh.name,pa.sc_id" + " FROM passenger as pa" + " INNER JOIN (subscriber_history as sh,vehicle as veh)" + " on ( pa.sc_id = sh.sc_id and sh.veh_id = veh.id)" + " ORDER BY pa.id", cnMY); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { RFIDs rfid = new RFIDs(Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetInt32(4), Reader.GetInt32(0)); RfIDList.Add(rfid); } } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return RfIDList; } } public Hashtable getAll_imei_sc_id() { Hashtable List = new Hashtable(); if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT sc_id,imei from subscriber", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { try { List.Add(Reader.GetString(1),Reader.GetInt32(0)); } catch { } } Reader.Close(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); } } else { MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT sc_id,imei from subscriber", cnMY); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { try { List.Add(Reader.GetString(1), Reader.GetInt32(0)); } catch { } } Reader.Close(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); } } return List; } public ArrayList getAllUsersForCurrentVehicle(String _id) { if (MSSQL) { ArrayList userList = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("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 + " GROUP BY u.userId,u.firstName, u.lastName, u.login, u.password" , cn); 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("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return userList; } else { 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 Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return userList; } } //get all users that ar not assigned to current vehicle public ArrayList getAllOtherUsersForCurrentVehicle(String _id) { if (MSSQL) { ArrayList userList = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("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 + ")" , cn); 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("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return userList; } else { 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 Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return userList; } } public void addUserToDb(String _firstName, String _lastname, String _userName, String _password) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("select count(login) from users where login=\'" + _userName + "\'", cn); object temp = cmd.ExecuteScalar(); if (temp.ToString() == "0") { cmd = new SqlCeCommand("INSERT INTO users (firstName,lastName,login,password) VALUES('" + _firstName + "','" + _lastname + "','" + _userName + "','" + _password + "')", cn); 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 (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { 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 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public void updateUserToDb(String _firstName, String _lastname, String _userName, String _password) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("select count(login) from users where login=\'" + _userName + "\'", cn); object temp = cmd.ExecuteScalar(); if (Convert.ToInt32(temp) > 0) { cmd = new SqlCeCommand("UPDATE users SET firstName='" + _firstName + "',lastName='" + _lastname + "',login='" + _userName + "',password='" + _password + "' WHERE login='" + _userName + "'", cn); 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 (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { 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 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public void deleteUser(string userName) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("select count(login) from users where login=\'" + userName + "\'", cn); object temp = cmd.ExecuteScalar(); if (temp.ToString() != "0") { cmd = new SqlCeCommand("DELETE FROM users where login='" + userName + "'", cn); 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 (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { 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 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } //get all users public ArrayList getAllUsers() { if (MSSQL) { ArrayList userList = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT firstName, lastName, login, password,userId FROM users", cn); 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("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return userList; } else { 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 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return userList; } } //get all vehicles for current user public ArrayList getAllVehiclesForCurrentUser(String _id) { Vehicles veh; if (MSSQL) { ArrayList vehList = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,em.DI FROM vehicle as veh INNER JOIN subscriber_history as sh ON (veh.id = sh.veh_id) INNER JOIN subscriber as sub on (sh.sc_id = sub.sc_id) LEFT JOIN emergdi as em on (sub.sc_id = em.sc_id) inner join vehicle_user as vh on(vh.veh_id=veh.id) Where vh.user_id=" + _id + " Group by sub.imei,veh.id,veh.lp,veh.name,em.DI ORDER BY sub.imei", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { if (Reader.IsDBNull(4)) veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", 0); else veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", Reader.GetInt32(4)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine("2" + ee.Message + "\n" + ee.StackTrace); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } else { ArrayList vehList = new ArrayList(); MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,em.DI" + " 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(emergdi as em)" + " on(sub.sc_id = em.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()) { if (Reader.IsDBNull(4)) veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", 0); else veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", Reader.GetInt32(4)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine("2"+ee.Message + "\n" + ee.StackTrace); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } } public DataTable get_zone_table(string command) { if (MSSQL) { SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(command, cn); DataTable table = new DataTable(); table.Locale = System.Globalization.CultureInfo.InvariantCulture; dataAdapter.Fill(table); return table; } else { MySqlDataAdapter dataAdapter = new MySqlDataAdapter(command, cnMY); DataTable table = new DataTable(); table.Locale = System.Globalization.CultureInfo.InvariantCulture; dataAdapter.Fill(table); return table; } } //get all vehicles that ar not assigned to current user public ArrayList getAllOtherVehiclesForCurrentUser(String _id) { Vehicles veh; if (MSSQL) { ArrayList vehList = new ArrayList(); SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,em.DI FROM vehicle as veh INNER JOIN subscriber_history as sh ON (veh.id = sh.veh_id) INNER JOIN subscriber as sub on (sh.sc_id = sub.sc_id) LEFT JOIN emergdi as em on (sub.sc_id = em.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 + ") Group by sub.imei,veh.id,veh.lp,veh.name,em.DI ORDER BY sub.imei", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { if (Reader.IsDBNull(4)) veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", 0); else veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", Reader.GetInt32(4)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine("3" + ee.Message + "\n" + ee.StackTrace); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } else { ArrayList vehList = new ArrayList(); MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT veh.id,sub.imei,veh.lp,veh.name,em.DI" + " 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(emergdi as em,vehicle_user as vh)" + " on(sub.sc_id = em.sc_id and 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()) { if (Reader.IsDBNull(4)) veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", 0); else veh = new Vehicles(Convert.ToInt32(Reader.GetValue(0)), Reader.GetValue(1).ToString(), Reader.GetValue(2).ToString(), Reader.GetValue(3).ToString(), "", Reader.GetInt32(4)); vehList.Add(veh); } } catch (Exception ee) { Console.WriteLine("3"+ee.Message + "\n" + ee.StackTrace); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return vehList; } } public ArrayList getMessage4vAL() { ArrayList List = new ArrayList(); Messages4vAL tmp; if (MSSQL) { SqlCeCommand cmd; SqlCeDataReader Reader; cmd = new SqlCeCommand("SELECT s.type,s.imei,s.cmd,s.idx,veh.lp,s.status FROM sendtoval as s INNER JOIN subscriber as sub on (s.imei = sub.imei) INNER JOIN subscriber_history as sh ON (sub.sc_id = sh.sc_id) INNER JOIN vehicle as veh ON (veh.id = sh.veh_id) WHERE s.status !=2 Group by s.type,s.imei,s.cmd,s.idx,veh.lp,s.status", cn); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { tmp = new Messages4vAL(Reader.GetInt32(0), Reader.GetString(1), Reader.GetString(2), Reader.GetInt32(3), Reader.GetString(4), Reader.GetInt32(5)); List.Add(tmp); } Reader.Close(); } catch (Exception ee) { Console.WriteLine("3" + ee.Message + "\n" + ee.StackTrace); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MySqlCommand cmd; MySqlDataReader Reader; cmd = new MySqlCommand("SELECT s.type,s.imei,s.cmd,s.idx,veh.lp,s.status" + " FROM sendtoval as s" + " INNER JOIN (subscriber as sub,subscriber_history as sh,vehicle as veh)" + " on (s.imei = sub.imei and sub.sc_id = sh.sc_id and sh.veh_id = veh.id)" + " where s.status != 2" + " Group by sub.imei", cnMY); try { Reader = cmd.ExecuteReader(); while (Reader.Read()) { tmp = new Messages4vAL(Reader.GetInt32(0), Reader.GetString(1), Reader.GetString(2), Reader.GetInt32(3), Reader.GetString(4), Reader.GetInt32(5)); List.Add(tmp); } Reader.Close(); } catch (Exception ee) { Console.WriteLine("3" + ee.Message + "\n" + ee.StackTrace); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } return List; } public void Change_Message_Status(Int32 Idx, Int32 val) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("UPDATE sendtoval SET status="+ val +" where idx="+Idx, cn); //cmd = new SqlCeCommand("UPDATE updatelist SET version='1.0.0.2'", cn); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MySqlCommand cmd; try { cmd = new MySqlCommand("UPDATE sendtoval SET status=1 where idx=" + Idx, cnMY); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("MySql connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } public String get_last_DBUpdate() { String ret = "0"; if (MSSQL) { try { SqlCeCommand cmd; cmd = new SqlCeCommand("select version from updatelist order by idx desc", cn); object temp = cmd.ExecuteScalar(); ret = Convert.ToString(temp); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: get_active_state : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } else { try { MySqlCommand cmd; cmd = new MySqlCommand("select version from updatelist order by idx desc", cnMY); object temp = cmd.ExecuteScalar(); ret = Convert.ToString(temp); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: get_active_state : " + o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } return ret; } public String Get_DB_version() { String name = ""; if (MSSQL) { SqlCeCommand cmd; try { String query = "select max(idx) from updatelist"; cmd = new SqlCeCommand(query, cn); Int32 nr = (Int32)cmd.ExecuteScalar(); query = "SELECT version from updatelist where idx=" + nr; cmd = new SqlCeCommand(query, cn); name = (String)cmd.ExecuteScalar(); } catch (Exception o) { Console.WriteLine("File: SMdb_access.cs Meth: test_place_exist SqlCeCommand: "); Console.WriteLine(o.Message.ToString() + o.StackTrace); throw new ArgumentException(o.Message.ToString()); } } else { MySqlCommand cmd; try { String query = "SELECT version from updatelist where idx=(select max(idx) from updatelist)"; cmd = new MySqlCommand(query, cnMY); name = (String)cmd.ExecuteScalar(); } catch (MySqlException o) { Console.WriteLine("File: SMdb_access.cs Meth: test_place_exist MySqlCommand: "); Console.WriteLine(o.Message.ToString()); throw new ArgumentException(o.Message.ToString()); } } return name; } // add connection between user and vehicle public void addVehicleUserConnection(string vehId, string userId) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("INSERT INTO vehicle_user VALUES(" + vehId + "," + userId + ",'2007-01-01')", cn); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { 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 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } //remove connection between user and vehicle public void removeVehicleUserConnection(string vehId, string userId) { if (MSSQL) { SqlCeCommand cmd; try { cmd = new SqlCeCommand("DELETE FROM vehicle_user WHERE veh_id ='" + vehId + "' and user_id='" + userId + "'", cn); cmd.ExecuteNonQuery(); } catch (Exception ee) { Console.WriteLine(ee.Message + " " + ee.StackTrace + " " + ee.Source); MessageBox.Show("SqlCe connection Failed !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { 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 !!!!", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }