Aggiunto limite configurabile storia puntate
Introdotta la possibilità di configurare un limite massimo di puntate visualizzabili nella scheda "Storia Puntate" tramite l'interfaccia utente. La nuova proprietà `MaxBidHistoryEntries` è stata aggiunta alle impostazioni e salvata in modo persistente. - Aggiunti controlli UI per configurare il limite. - Implementata persistenza della lista `RecentBids` con serializzazione JSON. - Introdotto il metodo `MergeBidHistory` per unire puntate evitando duplicati e mantenendo ordine cronologico decrescente. - Sincronizzate le statistiche utenti (`BidderStats`) con la lista `RecentBids`. - Ripristinata la proprietà `IsMyBid` al caricamento delle aste salvate. - Ottimizzate le performance con `HashSet` per deduplicazione e limite configurabile. - Creato il file `FIX_BID_HISTORY_PERSISTENCE.md` per documentare il problema e la soluzione. - Garantita compatibilità retroattiva con aste salvate. Questi aggiornamenti migliorano la gestione, la visualizzazione e la persistenza della storia delle puntate, offrendo un'esperienza utente più robusta e intuitiva.
This commit is contained in:
@@ -69,8 +69,9 @@ namespace AutoBidder.Models
|
||||
|
||||
/// <summary>
|
||||
/// Storia delle ultime puntate effettuate sull'asta (da API)
|
||||
/// Questa è la fonte UFFICIALE per il conteggio puntate per utente
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
[JsonPropertyName("RecentBids")]
|
||||
public List<BidHistoryEntry> RecentBids { get; set; } = new List<BidHistoryEntry>();
|
||||
|
||||
// Log per-asta (non serializzato)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace AutoBidder.Models
|
||||
{
|
||||
@@ -10,26 +11,31 @@ namespace AutoBidder.Models
|
||||
/// <summary>
|
||||
/// Prezzo dell'asta al momento della puntata
|
||||
/// </summary>
|
||||
[JsonPropertyName("Price")]
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tipo di puntata (Auto/Manuale)
|
||||
/// </summary>
|
||||
[JsonPropertyName("BidType")]
|
||||
public string BidType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Timestamp della puntata (Unix timestamp)
|
||||
/// </summary>
|
||||
[JsonPropertyName("Timestamp")]
|
||||
public long Timestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nome utente che ha fatto la puntata
|
||||
/// </summary>
|
||||
[JsonPropertyName("Username")]
|
||||
public string Username { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Orario formattato della puntata (HH:mm:ss)
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public string TimeFormatted
|
||||
{
|
||||
get
|
||||
@@ -42,6 +48,7 @@ namespace AutoBidder.Models
|
||||
/// <summary>
|
||||
/// Prezzo formattato con 2 decimali
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public string PriceFormatted
|
||||
{
|
||||
get => Price.ToString("0.00");
|
||||
@@ -50,6 +57,7 @@ namespace AutoBidder.Models
|
||||
/// <summary>
|
||||
/// Indica se la puntata è stata fatta dall'utente corrente
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public bool IsMyBid { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user