added c# backend

This commit is contained in:
QkoSad
2024-11-24 19:45:56 +02:00
parent 3b572380bb
commit 4496672d19
83 changed files with 3792 additions and 43 deletions
+108
View File
@@ -0,0 +1,108 @@
using System;
using System.Net;
using System.Text;
using System.Threading;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Create an HttpListener to handle incoming HTTP requests
HttpListener listener = new HttpListener();
// Add a prefix to listen to, e.g., http://localhost:8080/
listener.Prefixes.Add("http://localhost:5000/");
// Start listening for incoming requests
listener.Start();
Console.WriteLine("Server is listening on http://localhost:5000/");
// Handle requests on a separate thread to keep server responsive
Thread listenerThread = new Thread(() =>
{
while (true)
{
// Wait for a request
HttpListenerContext context = listener.GetContext();
// Get the request and response objects
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
// Check if the requested URL is /api
if (request.Url.AbsolutePath == "/api")
{
string connectionString = "Server=localhost;Port=5050;Database=your_database;User ID=your_user;Password=your_password;";
MySqlConnection conn = new MySqlConnection(connectionString);
try
{
// Open the connection
conn.Open();
// Prepare the SQL query
string query = "SELECT * FROM User;";
MySqlCommand cmd = new MySqlCommand(query, conn);
// Execute the query and read the results
MySqlDataReader reader = cmd.ExecuteReader();
StringBuilder result = new StringBuilder();
while (reader.Read())
{
// Assuming User table has columns "id", "name", and "email"
result.AppendLine($"ID: {reader["id"]}, Name: {reader["name"]}, Email: {reader["email"]}");
// Prepare the response message
string responseMessage = result.ToString();
if (string.IsNullOrEmpty(responseMessage))
{
responseMessage = "No data found.";
}
byte[] buffer = Encoding.UTF8.GetBytes(responseMessage);
// Set the response content type and write the response
response.ContentType = "text/plain";
response.ContentLength64 = buffer.Length;
response.OutputStream.Write(buffer, 0, buffer.Length);
}
catch (Exception ex)
{
// Handle any connection errors
string errorMessage = $"Error: {ex.Message}";
byte[] buffer = Encoding.UTF8.GetBytes(errorMessage);
response.ContentType = "text/plain";
response.ContentLength64 = buffer.Length;
response.OutputStream.Write(buffer, 0, buffer.Length);
}
finally
{
// Close the connection
conn.Close();
}
}
else
{
// Return 404 for other paths
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);
}
// Close the response
response.OutputStream.Close();
}
});
// Start the listener thread
listenerThread.Start();
}
}