Aggiunta scheda "Storia Puntate" con aggiornamento live
Introdotta una nuova scheda "Storia Puntate" nel pannello dell'asta selezionata, che mostra la cronologia delle ultime puntate in tempo reale. La scheda utilizza un `TabControl` con due `TabItem`: uno per gli utenti e uno per la storia delle puntate. - Creata la classe `BidHistoryEntry` per rappresentare una singola puntata, con proprietà come `Price`, `BidType`, `Timestamp`, e calcoli formattati. - Aggiunte proprietà `RecentBids` in `AuctionInfo` e `RecentBidsHistory` in `AuctionState` per gestire i dati della cronologia. - Modificato il parsing API in `BidooApiClient` per includere la cronologia delle puntate. - Aggiornato il monitor delle aste (`AuctionMonitor.cs`) per sincronizzare i dati della cronologia con il backend. - Aggiunta la proprietà `BidHistoryEntries` in `AuctionViewModel` per il binding della griglia. - Modificata la UI (`AuctionMonitorControl.xaml`) per includere la nuova scheda e personalizzare gli stili. - Aggiornata la logica di aggiornamento UI in `MainWindow.xaml.cs` per gestire i dati della cronologia. - Documentata la funzionalità in `FEATURE_BID_HISTORY_TAB.md`. - Aggiunto uno screenshot (`Screenshot 2025-11-25 113552.png`). Questa funzionalità migliora la trasparenza e fornisce agli utenti informazioni dettagliate sulle attività recenti, aiutandoli a prendere decisioni strategiche durante le aste.
This commit is contained in:
@@ -67,6 +67,12 @@ namespace AutoBidder.Models
|
||||
public List<BidHistory> BidHistory { get; set; } = new List<BidHistory>();
|
||||
public Dictionary<string, BidderInfo> BidderStats { get; set; } = new(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
/// <summary>
|
||||
/// Storia delle ultime puntate effettuate sull'asta (da API)
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public List<BidHistoryEntry> RecentBids { get; set; } = new List<BidHistoryEntry>();
|
||||
|
||||
// Log per-asta (non serializzato)
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public List<string> AuctionLog { get; set; } = new();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AutoBidder.Models
|
||||
{
|
||||
@@ -28,6 +29,11 @@ namespace AutoBidder.Models
|
||||
// Dati estratti HTML
|
||||
public string RawHtml { get; set; } = "";
|
||||
public bool ParsingSuccess { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Storia delle ultime puntate (dal polling API)
|
||||
/// </summary>
|
||||
public List<BidHistoryEntry>? RecentBidsHistory { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
55
Mimante/Models/BidHistoryEntry.cs
Normal file
55
Mimante/Models/BidHistoryEntry.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
|
||||
namespace AutoBidder.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// Rappresenta una singola puntata nella storia dell'asta
|
||||
/// </summary>
|
||||
public class BidHistoryEntry
|
||||
{
|
||||
/// <summary>
|
||||
/// Prezzo dell'asta al momento della puntata
|
||||
/// </summary>
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tipo di puntata (Auto/Manuale)
|
||||
/// </summary>
|
||||
public string BidType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Timestamp della puntata (Unix timestamp)
|
||||
/// </summary>
|
||||
public long Timestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Nome utente che ha fatto la puntata
|
||||
/// </summary>
|
||||
public string Username { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Orario formattato della puntata (HH:mm:ss)
|
||||
/// </summary>
|
||||
public string TimeFormatted
|
||||
{
|
||||
get
|
||||
{
|
||||
var dateTime = DateTimeOffset.FromUnixTimeSeconds(Timestamp).ToLocalTime();
|
||||
return dateTime.ToString("HH:mm:ss");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Prezzo formattato con 2 decimali
|
||||
/// </summary>
|
||||
public string PriceFormatted
|
||||
{
|
||||
get => Price.ToString("0.00");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indica se la puntata è stata fatta dall'utente corrente
|
||||
/// </summary>
|
||||
public bool IsMyBid { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user