Add balance override to EditUser

This commit is contained in:
Laura Hausmann 2023-05-16 23:35:09 +02:00
parent babb809019
commit 67a2c51a1b
Signed by: zotan
GPG key ID: D044E84C5BE01605
2 changed files with 18 additions and 2 deletions

View file

@ -2,6 +2,7 @@
@using AfRApay.Web.Backend.Database
@using Microsoft.AspNetCore.Mvc.TagHelpers
@using Microsoft.EntityFrameworkCore
@using System.Globalization
@model EditUserModel
@{
ViewData["Title"] = "Edit User";
@ -11,6 +12,11 @@
var db = new DatabaseContext();
var user = db.Users.First(p => p.Id == int.Parse(RouteData.Values["id"]!.ToString()!));
var cards = db.Cards.Include(p => p.User).Where(p => p.User == user);
var formattedBalance = (user.Balance / 100m).ToString(CultureInfo.InvariantCulture);
if (user.Balance % 10 == 0) {
formattedBalance += formattedBalance.Contains(".") ? "0" : ".00";
}
var linkFlag = db.Config.FirstOrDefault(p => p.Name == "link");
var lTimeFlag = db.Config.FirstOrDefault(p => p.Name == "lTime");
@ -34,6 +40,10 @@
<label for="nickname" class="form-label">Nickname</label>
<input type="text" maxlength="10" class="form-control" id="nickname" name="nickname" value="@user.Nickname" required>
</div>
<div class="mb-3">
<label for="balance" class="form-label">Balance (&euro;)</label>
<input type="number" max="999.50" min="-99.50" step=".50" class="form-control" id="balance" name="balance" value="@formattedBalance" required>
</div>
<button type="submit" class="btn btn-lg btn-primary" name="action" value="save">Save</button>
<button type="button" class="btn btn-lg btn-danger" name="action" data-bs-toggle="modal" data-bs-target="#deleteConfirmModal">Delete</button> <!-- Calls the below modal dialog to confirm user deletetion -->
</form>

View file

@ -60,14 +60,20 @@ public class EditUserModel : PageModel {
return;
}
if (Request.Form["action"] == "save" && Request.Form.ContainsKey("nickname") && !string.IsNullOrWhiteSpace(Request.Form["nickname"])) {
var nick = Request.Form["nickname"].ToString();
if (Request.Form["action"] == "save"
&& Request.Form.ContainsKey("nickname")
&& Request.Form.ContainsKey("balance")
&& !string.IsNullOrWhiteSpace(Request.Form["nickname"])
&& !string.IsNullOrWhiteSpace(Request.Form["balance"])) {
var nick = Request.Form["nickname"].ToString();
var balance = decimal.Parse(Request.Form["balance"]!);
if (db.Users.Any(p => p.Nickname == nick && p.Id != userId)) {
Response.Redirect($"/ErrorRedirect?redir=EditUser/{userId}&message=" + WebUtility.UrlEncode("User with nick already exists."));
return;
}
user.Nickname = nick;
user.Balance = (long)(balance * 100);
await db.SaveChangesAsync();
}