Files
timelog/backendCs/Program.cs
T
2024-12-04 15:46:10 +02:00

104 lines
4.4 KiB
C#

using System.Net;
using System.Text;
namespace Server
{
class Program
{
static void HandleMissingPath(HttpListenerResponse response)
{
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);
response.OutputStream.Write(buffer, 0, buffer.Length);
}
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/");
listener.Prefixes.Add("http://localhost:5000/api/register/");
listener.Prefixes.Add("http://localhost:5000/api/login/");
listener.Prefixes.Add("http://localhost:5000/api/createlog/");
// listen
listener.Start();
Console.WriteLine("Server is listening on http://localhost:5000/");
while (true)
{
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
// url after localhost:5000/
string uri;
if (request != null && request.Url != null)
uri = request.Url.AbsolutePath;
else
return;
switch (request.HttpMethod)
{
case "GET":
switch (uri)
{
case "/api/reset":
Reset.HandleRequest(request, response);
break;
case "/api/getall":
/* Thread clientThread = new Thread(() => Getall.HandleRequest(request, response)); */
/* clientThread.Start(); */
Getall.HandleRequest(request, response);
break;
case "/api/gettopten":
Gettopten.HandleRequest(request, response);
break;
case "/api/getuser":
Getuser.HandleRequest(request, response);
break;
case "/api/createp":
CreateProcedure.HandleRequest(request, response);
break;
default:
HandleMissingPath(response);
break;
}
break;
case "POST":
if (request.HasEntityBody)
switch (uri)
{
case "/api/register":
Register.HandleRequest(request, response);
break;
case "/api/login":
Login.HandleRequest(request, response);
break;
case "/api/createlog":
CreateLog.HandleRequest(request, response, context);
break;
default:
HandleMissingPath(response);
break;
}
else
{
HandleMissingPath(response);
}
break;
default:
HandleMissingPath(response);
break;
}
}
}
}
}