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:
2025-11-26 10:44:04 +01:00
parent d99b5ec923
commit c199e542ba
12 changed files with 622 additions and 7 deletions
@@ -30,7 +30,10 @@ namespace AutoBidder
Settings.MaxLogLinesPerAuctionTextBox.Text = settings.MaxLogLinesPerAuction.ToString();
Settings.MaxGlobalLogLinesTextBox.Text = settings.MaxGlobalLogLines.ToString();
// ? NUOVO: Carica limite minimo puntate
// ?? NUOVO: Carica limite storia puntate
Settings.MaxBidHistoryEntriesTextBox.Text = settings.MaxBidHistoryEntries.ToString();
// ?? NUOVO: Carica limite minimo puntate
MinimumRemainingBidsTextBox.Text = settings.MinimumRemainingBids.ToString();
// Aggiorna indicatore visivo
@@ -190,7 +193,26 @@ namespace AutoBidder
Log("[ERRORE] Valore max log globale non valido (deve essere > 0)", LogLevel.Error);
}
// ? NUOVO: Salva limite minimo puntate
// ?? NUOVO: Salva limite storia puntate
if (int.TryParse(Settings.MaxBidHistoryEntriesTextBox.Text, out var maxBidHistory) && maxBidHistory >= 0)
{
settings.MaxBidHistoryEntries = maxBidHistory;
if (maxBidHistory > 0)
{
Log($"[HISTORY] Impostato limite storia puntate: {maxBidHistory}", LogLevel.Info);
}
else
{
Log("[HISTORY] Limite storia puntate disabilitato (mostra tutte)", LogLevel.Info);
}
}
else
{
Log("[ERRORE] Valore limite storia puntate non valido (deve essere >= 0)", LogLevel.Error);
}
// ?? NUOVO: Salva limite minimo puntate
if (int.TryParse(MinimumRemainingBidsTextBox.Text, out var minBids) && minBids >= 0)
{
settings.MinimumRemainingBids = minBids;