using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Net.Sockets;
using System.Configuration;
namespace LTS
{
class DB
{
public static MySqlConnection getconn()
{
String connStr = "server=localhost;user=root;database=test;password=removekebab;";
//String.Format(connStr, ConfigurationManager.AppSettings["mysql_user"], ConfigurationManager.AppSettings["mysql_db"], ConfigurationManager.AppSettings["mysql_pass"]);
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = connStr;
conn.Open();
if (conn != null)
{
Console.WriteLine(conn.ToString());
return conn;
}
else
{
throw new SystemException();
}
}
}
class LTS
{
public bool is_initialized;
int ID;
string _first_name;
string _last_name;
string _notes;
int _location;
string _rfid;
public LTS(int id)
{
this.ID = id;
this.is_initialized = true;
}
public static LTS learner_from_rfid(string rfid)
{
var conn = DB.getconn();
string query = "SELECT learner_id FROM learners WHERE rfid = @rfid";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@rfid", rfid);
MySqlDataReader reader = cmd.ExecuteReader();
Int64 id = -1;
while (reader.Read()) { id = reader.GetInt64(0); }
conn.Close();
return new LTS((int)id);
}
public string first_name
{
get
{
MySqlConnection conn;
string query;
MySqlCommand cmd;
string final;
conn = DB.getconn();
query = "SELECT first_name FROM learners WHERE learner_id = @id";
cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
// The reason i set final now is that in case reader doesnt read
final = "Didnt work";
while (reader.Read()) { final = reader.GetString(0); }
conn.Close();
return final;
}
set
{
var conn = DB.getconn();
string query = @"UPDATE learners
SET first_name = @new_name
WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
cmd.Parameters.AddWithValue("@new_name", value);
int status = cmd.ExecuteNonQuery();
query = "SELECT first_name FROM learners WHERE learner_id = @id";
cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read()) { final = reader.GetString(0); }
conn.Close();
this._first_name = final;
}
}
public string last_name
{
get
{
var conn = DB.getconn();
string query = "SELECT last_name FROM learners WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read()) { final = reader.GetString(0); }
conn.Close();
return final;
}
set
{
var conn = DB.getconn();
string query = @"UPDATE learners
SET last_name = @new_name
WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
cmd.Parameters.AddWithValue("@new_name", value);
int status = cmd.ExecuteNonQuery();
query = "SELECT last_name FROM learners WHERE learner_id = @id";
cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read()) { final = reader.GetString(0); }
conn.Close();
this._last_name = final;
}
}
public string notes
{
get
{
var conn = DB.getconn();
string query = "SELECT notes FROM learners WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read()) {
try {
final = reader.GetString(0);
}
catch (System.Data.SqlTypes.SqlNullValueException e)
{
final = "";
}
}
conn.Close();
return final;
}
set
{
var conn = DB.getconn();
string query = @"UPDATE learners
SET notes = @new_notes
WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
cmd.Parameters.AddWithValue("new_notes", value);
query = "SELECT notes FROM learners WHERE learner_id = @id";
cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read())
{
try
{
final = reader.GetString(0);
}
catch (System.Data.SqlTypes.SqlNullValueException e)
{
final = "";
}
}
conn.Close();
this._notes = final;
}
}
public int location
{
get
{
var conn = DB.getconn();
string query = "SELECT location FROM learners WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
Int64 final = -1;
while (reader.Read()) { final = reader.GetInt64(0); }
conn.Close();
// I hope you dont overflow... That'd have to be a lot of locations tho
return (int)final;
}
set
{
var conn = DB.getconn();
string query = @"UPDATE learners
SET location = @new_location
WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
cmd.Parameters.AddWithValue("new_location", value);
int status = cmd.ExecuteNonQuery();
query = "SELECT location FROM learners WHERE learner_id = @id";
cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
Int64 final = -1;
while (reader.Read()) { final = reader.GetInt64(0); }
conn.Close();
// I hope you dont overflow... That'd have to be a lot of locations tho
this._location = (int)final;
}
}
public string rfid
{
get
{
var conn = DB.getconn();
string query = "SELECT rfid FROM learners WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read()) { final = reader.GetString(0); }
conn.Close();
return final;
}
set
{
var conn = DB.getconn();
string query = @"UPDATE learners
SET rfid = @new_rfid
WHERE learner_id = @id";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
cmd.Parameters.AddWithValue("new_rfid", value);
int status = cmd.ExecuteNonQuery();
query = "SELECT rfid FROM learners WHERE learner_id = @id";
cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", this.ID);
MySqlDataReader reader = cmd.ExecuteReader();
string final = "Didnt work";
while (reader.Read()) { final = reader.GetString(0); }
conn.Close();
this._rfid = final;
}
}
}
}
namespace Server
{
class Program
{
public static void Logger(String lines)
{
System.IO.StreamWriter file = new System.IO.StreamWriter("D:\\Users\\Visual Studio 2015\\Projects\\ConsoleApplication1\\logs\\logs.txt", true);
file.WriteLine(lines);
file.Close();
}
static void startTCP()
{
TcpListener server = new TcpListener(8080);
TcpClient client = default(TcpClient);
server.Start();
Console.WriteLine("Server Started");
while (true)
{
try
{
client = server.AcceptTcpClient();
Console.WriteLine("\nAccepted Client Connection\n");
NetworkStream stream = client.GetStream();
byte[] bytesFrom = new byte[10025];
stream.Read(bytesFrom, 0, 32);
string FromClient = Encoding.ASCII.GetString(bytesFrom);
FromClient = FromClient.Substring(0, 32);
Console.WriteLine("\nGot data: " + FromClient + "\n");
Byte[] sendByte = Encoding.ASCII.GetBytes(received(FromClient));
stream.Write(sendByte, 0, sendByte.Length);
stream.Flush();
Console.WriteLine("\nSuccesfully sent state\n");
client.Close();
Console.WriteLine("\nClosing the Client\n");
}
catch (Exception error)
{
string time = DateTime.Now.ToString("MM/dd/yyyy h:mm tt");
string errorstring = error.ToString();
string trace = error.StackTrace;
string errorlog = time + "-" + errorstring + "-" + trace;
Logger(errorlog);
Console.WriteLine("\nThere was an error:\n" + error.ToString() + "\n");
}
}
}
static String received(String rec)
{
Console.WriteLine("\nSQL collection started\n");
LTS.LTS learner = LTS.LTS.learner_from_rfid(rec);
learner.location = 3;
Console.WriteLine("\nSQL collection done\n");
return "1"; //This is what to send back either "0" or "1" notpass/pass
}
static void Main(string[] args)
{
var learner = LTS.LTS.learner_from_rfid("B0529B1168080400626364656667686991FD");
Console.WriteLine(learner.first_name);
Console.WriteLine(learner.last_name);
learner.last_name = "Sworne";
Console.WriteLine(learner.last_name);
Console.ReadKey();
startTCP();
}
}
}
Comments
Please log in or sign up to comment.