@model Frontend.Models.LibrarianRewardsViewModel @{ ViewData["Title"] = "Rewards Management"; string PrettyEvent(string? eventKey, double points) { var key = (eventKey ?? string.Empty).Trim().ToUpperInvariant(); return key switch { "RETURN" or "BOOK_RETURN" or "BORROW_RETURN" => "RETURN", "SIGNUP" or "REGISTER" => "SIGNUP", "SUBSCRIBE" or "SUBSCRIPTION" or "MEMBERSHIP" => "SUBSCRIBE", "REDEEM" or "REDEMPTION" or "CLAIM_REWARD" => "REDEEM", _ => points < 0 ? "SPENT" : (string.IsNullOrEmpty(key) ? "EARNED" : key) }; } }
Fulfill pending redemptions and review all members' loyalty activity.
Pending
@Model.PendingRedemptions.Count()
Members w/ History
@Model.AllMembersHistory.Count()
No pending redemptions. All caught up!
| Member | Reward | Points | Claimed | Status | Action |
|---|---|---|---|---|---|
|
@(r.ExternalUserId.Length >= 2 ? r.ExternalUserId.Substring(0, 2).ToUpper() : "U")
@r.ExternalUserId
|
@r.RewardName ID: @r.Id[..Math.Min(8, r.Id.Length)]... |
@r.PointCost.ToString("N0") pts | @r.RedeemedAt.ToString("MMM dd, yyyy") | Pending |