AfRApay/AfRApay.Web/Pages/EditUser.cshtml.cs

83 lines
2.3 KiB
C#
Raw Normal View History

2023-02-13 18:17:38 +01:00
using System.Net;
using AfRApay.Web.Backend.Database;
using AfRApay.Web.Backend.Database.Tables;
2023-02-06 02:23:00 +01:00
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace AfRApay.Web.Pages;
public class EditUserModel : PageModel {
public void OnGet() { }
2023-02-13 18:17:38 +01:00
public async void OnPost() {
await using var db = new DatabaseContext();
var userId = long.Parse(RouteData.Values["id"]!.ToString()!);
var user = db.Users.First(p => p.Id == userId);
2023-02-06 02:23:00 +01:00
if (Request.Form["action"] == "delete") {
2023-02-13 18:17:38 +01:00
db.Remove(user);
await db.SaveChangesAsync();
2023-02-06 02:23:00 +01:00
Response.Redirect("/");
return;
}
if (Request.Form["action"] == "deleteCard" && Request.Form.ContainsKey("cardId")) {
2023-02-13 18:17:38 +01:00
var card = db.Cards.First(p => p.Id == Request.Form["cardId"].ToString());
db.Remove(card);
await db.SaveChangesAsync();
Response.Redirect($"/EditUser/{userId}");
return;
}
2023-02-10 17:46:09 +01:00
if (Request.Form["action"] == "linkCard") {
var linkFlag = db.Config.FirstOrDefault(p => p.Name == "link");
var lTimeFlag = db.Config.FirstOrDefault(p => p.Name == "lTime");
Response.Redirect($"/EditUser/{userId}");
if (lTimeFlag == null) {
lTimeFlag = new Config { Name = "lTime", Value = DateTime.UtcNow.ToString("s") };
2023-02-13 18:17:38 +01:00
db.Add(lTimeFlag);
await db.SaveChangesAsync();
2023-02-10 17:46:09 +01:00
}
else {
lTimeFlag.Value = DateTime.UtcNow.ToString("s");
2023-02-13 18:17:38 +01:00
await db.SaveChangesAsync();
2023-02-10 17:46:09 +01:00
}
if (linkFlag == null) {
linkFlag = new Config { Name = "link", Value = user.Id.ToString() };
2023-02-13 18:17:38 +01:00
db.Add(linkFlag);
await db.SaveChangesAsync();
2023-02-10 17:46:09 +01:00
return;
}
if (linkFlag.Value.Equals(user.Id.ToString())) {
return;
}
linkFlag.Value = user.Id.ToString();
2023-02-13 18:17:38 +01:00
await db.SaveChangesAsync();
2023-02-10 17:46:09 +01:00
return;
}
if (Request.Form["action"] == "save" && Request.Form.ContainsKey("nickname") && !string.IsNullOrWhiteSpace(Request.Form["nickname"])) {
2023-02-13 18:17:38 +01:00
var nick = Request.Form["nickname"].ToString();
if (db.Users.Any(p => p.Nickname == nick && p.Id != userId)) {
2023-02-16 16:36:26 +01:00
Response.Redirect($"/ErrorRedirect?redir=EditUser/{userId}&message=" + WebUtility.UrlEncode("User with nick already exists."));
2023-02-11 02:57:15 +01:00
return;
2023-02-06 02:23:00 +01:00
}
2023-02-13 18:17:38 +01:00
user.Nickname = nick;
await db.SaveChangesAsync();
2023-02-06 02:23:00 +01:00
}
Response.Redirect($"/#{user.Nickname}");
}
2023-02-10 18:43:51 +01:00
public enum CardType {
2023-02-13 18:17:38 +01:00
Normal = 1,
LinkPlaceholder = 2,
2023-02-10 18:43:51 +01:00
DeletionConfirmation = 3
}
2023-02-06 02:23:00 +01:00
}