AfRApay/AfRApay.Web/Pages/EditUser.cshtml.cs
2023-02-06 02:37:36 +01:00

34 lines
875 B
C#

using System.Data;
using AfRApay.Web.Backend;
using LinqToDB;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace AfRApay.Web.Pages;
public class EditUserModel : PageModel {
public void OnGet() { }
public void OnPost() {
using var db = new Database.DbConn();
var userId = int.Parse(RouteData.Values["id"]!.ToString()!);
var user = db.Users.First(p => p.Id == userId);
if (Request.Form["action"] == "delete") {
db.Delete(user);
Response.Redirect("/");
return;
}
if (Request.Form.ContainsKey("nickname") && !string.IsNullOrWhiteSpace(Request.Form["nickname"])) {
var nick = Request.Form["nickname"];
if (db.Users.Any(p => p.Nickname == nick)) {
throw new DuplicateNameException("User with nick already exists.");
}
user.Nickname = nick!;
db.Update(user);
}
Response.Redirect($"/#{user.Nickname}");
}
}