2023-02-10 17:02:20 +01:00
|
|
|
|
using System.Data;
|
2023-02-11 02:57:15 +01:00
|
|
|
|
using System.Net;
|
2023-02-10 17:02:20 +01:00
|
|
|
|
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 {
|
2023-02-10 17:02:20 +01:00
|
|
|
|
public void OnGet() { }
|
2023-02-06 02:23:00 +01:00
|
|
|
|
|
2023-02-10 17:02:20 +01:00
|
|
|
|
public void OnPost() {
|
2023-02-11 02:57:15 +01:00
|
|
|
|
using var db = new Database.DbConn();
|
2023-02-10 17:02:20 +01:00
|
|
|
|
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-10 17:02:20 +01:00
|
|
|
|
}
|
2023-02-11 02:57:15 +01:00
|
|
|
|
|
|
|
|
|
user.Balance += amount;
|
2023-02-10 17:02:20 +01:00
|
|
|
|
db.Update(user);
|
2023-02-06 02:23:00 +01:00
|
|
|
|
|
2023-02-10 17:02:20 +01:00
|
|
|
|
Response.Redirect($"/#{user.Nickname}");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
Response.Redirect("/");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-02-06 02:23:00 +01:00
|
|
|
|
}
|