Initial commit

Made-with: Cursor
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-03-25 05:21:08 +02:00
commit 0625cd4157
90 changed files with 3430 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
using System.Net;
using System.Text.Json;
namespace Azaion.Flights.Middleware;
public class ErrorHandlingMiddleware(RequestDelegate next, ILogger<ErrorHandlingMiddleware> logger)
{
public async Task Invoke(HttpContext context)
{
try
{
await next(context);
}
catch (KeyNotFoundException ex)
{
await WriteError(context, HttpStatusCode.NotFound, ex.Message);
}
catch (ArgumentException ex)
{
await WriteError(context, HttpStatusCode.BadRequest, ex.Message);
}
catch (InvalidOperationException ex)
{
await WriteError(context, HttpStatusCode.Conflict, ex.Message);
}
catch (Exception ex)
{
logger.LogError(ex, "Unhandled exception");
await WriteError(context, HttpStatusCode.InternalServerError, "Internal server error");
}
}
private static async Task WriteError(HttpContext context, HttpStatusCode code, string message)
{
context.Response.StatusCode = (int)code;
context.Response.ContentType = "application/json";
var body = JsonSerializer.Serialize(new { statusCode = (int)code, message });
await context.Response.WriteAsync(body);
}
}