AfRApay/AfRApay.Web/Pages/Index.cshtml.cs

38 lines
1 KiB
C#
Raw Normal View History

using System.Data;
2023-02-11 02:57:15 +01:00
using System.Net;
using AfRApay.Web.Backend;
using LinqToDB;
using Microsoft.AspNetCore.Mvc.RazorPages;
2023-02-06 02:23:00 +01:00
namespace AfRApay.Web.Pages;
public class IndexModel : PageModel {
public void OnGet() { }
2023-02-06 02:23:00 +01:00
public void OnPost() {
2023-02-11 02:57:15 +01:00
using var db = new Database.DbConn();
if (Request.Form["action"] == "transaction" && Request.Form.ContainsKey("userId") && Request.Form.ContainsKey("amount")) {
var userId = int.Parse(Request.Form["userId"].ToString());
var amount = int.Parse(Request.Form["amount"].ToString());
var user = db.Users.First(p => p.Id == userId);
switch (user.Balance + amount) {
2023-02-11 02:57:15 +01:00
case < -9999:
Response.Redirect("/ErrorRedirect?message=" + WebUtility.UrlEncode("Balance too low!"));
return;
case > 99999:
Response.Redirect("/ErrorRedirect?message=" + WebUtility.UrlEncode("Balance too high!"));
return;
}
2023-02-11 02:57:15 +01:00
user.Balance += amount;
db.Update(user);
2023-02-06 02:23:00 +01:00
Response.Redirect($"/#{user.Nickname}");
}
else {
Response.Redirect("/");
return;
}
}
2023-02-06 02:23:00 +01:00
}