nrdkwebsite/nrdkwebsite/Program.cs

60 lines
2.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Microsoft.EntityFrameworkCore;
using nrdkwebsite;
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
var builder = WebApplication.CreateBuilder(args);
#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type.
var connection = builder.Configuration.GetConnectionString("DefaultConnection");
#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type.
builder.Services.AddDbContext<DatabaseHandler>(options => options.UseMySql(connection, ServerVersion.Create(new Version(8, 0, 35), ServerType.MySql)));
builder.Services.AddRazorPages();
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseStatusCodePagesWithReExecute("/errors/{0}");
app.UseHttpsRedirection();
app.UseStaticFiles();
app.MapGet("/api/users", (DatabaseHandler db) => db.users.ToList()); //WORKS
app.MapGet("/api/users/{id:int}", (int id, DatabaseHandler db) => {
var users = db.users.ToList();
User? user = users.FirstOrDefault(u => u.id == id);
// если не найден, отправляем статусный код и сообщение об ошибке
if (user == null) return Results.NotFound(new { message = "Пользователь не найден" });
// если пользователь найден, отправляем его
return Results.Json(user);
}); //WORKS
app.MapGet("/api/users/nickname/{name}", (string name, DatabaseHandler db) => {
var users = db.users.ToList();
User? user = users.FirstOrDefault(u => u.nickname == name);
// если не найден, отправляем статусный код и сообщение об ошибке
if (user == null) return Results.NotFound(new { message = "Пользователь не найден" });
// если пользователь найден, отправляем его
return Results.Json(user);
}); //WORKS
app.MapDelete("/api/users/{id:int}", async (int id, DatabaseHandler db) => {
User? user = db.users.FirstOrDefault(u => u.id == id);
if (user == null) return Results.NotFound(new { message = "Пользователь не найден" });
db.users.Remove(user);
await db.SaveChangesAsync();
return Results.Json(user);
}); //WORKS
app.MapPost("/api/users", async (User user, DatabaseHandler db)=>
{
user.id = db.users.Count() + 1;
await db.users.AddAsync(user);
await db.SaveChangesAsync();
return user;
}); //WORKS
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();