79 lines
3.0 KiB
C#
79 lines
3.0 KiB
C#
using System.Net;
|
|
using System.Text;
|
|
using MySql.Data.MySqlClient;
|
|
/* using System.Threading; */
|
|
|
|
|
|
namespace Server
|
|
{
|
|
class Program
|
|
{
|
|
static void Main()
|
|
{
|
|
// create server
|
|
HttpListener listener = new HttpListener();
|
|
// routes need to be added first
|
|
listener.Prefixes.Add("http://localhost:5000/api/getall/");
|
|
listener.Prefixes.Add("http://localhost:5000/api/gettopten/");
|
|
listener.Prefixes.Add("http://localhost:5000/api/getuser/");
|
|
listener.Prefixes.Add("http://localhost:5000/api/reset/");
|
|
listener.Prefixes.Add("http://localhost:5000/api/createp/");
|
|
|
|
// listen
|
|
listener.Start();
|
|
Console.WriteLine("Server is listening on http://localhost:5000/");
|
|
while (true)
|
|
{
|
|
// wait for request
|
|
HttpListenerContext context = listener.GetContext();
|
|
// get response and request
|
|
HttpListenerRequest request = context.Request;
|
|
HttpListenerResponse response = context.Response;
|
|
// mysql connection
|
|
string connectionString = "server=127.0.0.1;uid=monty;pwd=some_pass;database=timelog";
|
|
MySqlConnection conn = new MySqlConnection(connectionString);
|
|
|
|
// url after localhost:5000/
|
|
// i think the validation is unnecessry but the compiler doesn't
|
|
string uri;
|
|
if (request != null && request.Url != null)
|
|
{
|
|
uri = request.Url.AbsolutePath;
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
switch (uri)
|
|
{
|
|
case "/api/reset":
|
|
Reset.run(conn, request, response);
|
|
break;
|
|
case "/api/getall":
|
|
Getall.run(conn, request, response);
|
|
break;
|
|
case "/api/gettopten":
|
|
Gettopten.run(conn, request, response);
|
|
break;
|
|
case "/api/getuser":
|
|
Getuser.run(conn, request, response);
|
|
break;
|
|
case "/api/createp":
|
|
CreateProcedure.run(conn, request, response);
|
|
break;
|
|
default:
|
|
response.StatusCode = 404;
|
|
string errorMessage = "Not Found";
|
|
byte[] buffer = Encoding.UTF8.GetBytes(errorMessage);
|
|
response.ContentType = "text/plain";
|
|
response.ContentLength64 = buffer.Length;
|
|
response.OutputStream.Write(buffer, 0, buffer.Length);
|
|
break;
|
|
}
|
|
// send the response
|
|
response.OutputStream.Close();
|
|
}
|
|
}
|
|
}
|
|
}
|