- Introdotta la classe `BidooApiClient` per interagire con le API Bidoo. - Aggiunto `SessionManager` per la gestione sicura delle sessioni. - Creato `TestBidooApi` per test manuali delle API. - Implementato `CsvExporter` per esportare dati e statistiche in CSV. - Aggiunto `PersistenceManager` per salvare e caricare aste in JSON. - Introdotto `AuctionViewModel` per supportare il pattern MVVM. - Migliorata l'interfaccia utente con layout moderno e stili dinamici. - Aggiornata la documentazione in `README.md` per riflettere le nuove funzionalità. - Aggiunte classi per rappresentare informazioni, stato e storico delle aste. - Ottimizzate le richieste HTTP per simulare un browser reale.
49 lines
1.8 KiB
C#
49 lines
1.8 KiB
C#
using System;
|
|
|
|
namespace AutoBidder.Models
|
|
{
|
|
/// <summary>
|
|
/// Stato real-time di un'asta (snapshot dal polling HTTP)
|
|
/// </summary>
|
|
public class AuctionState
|
|
{
|
|
public string AuctionId { get; set; } = "";
|
|
|
|
// Dati correnti
|
|
public double Timer { get; set; } = 999;
|
|
public double Price { get; set; } = 0;
|
|
public string LastBidder { get; set; } = "";
|
|
public bool IsMyBid { get; set; } = false;
|
|
|
|
// Stato asta
|
|
public AuctionStatus Status { get; set; } = AuctionStatus.Unknown;
|
|
public string StartTime { get; set; } = ""; // Es: "Oggi alle 17:00" o "23 Ottobre 10:10"
|
|
|
|
// Timestamp snapshot
|
|
public DateTime SnapshotTime { get; set; } = DateTime.UtcNow;
|
|
|
|
// Latenza polling
|
|
public int PollingLatencyMs { get; set; } = 0;
|
|
|
|
// Dati estratti HTML
|
|
public string RawHtml { get; set; } = "";
|
|
public bool ParsingSuccess { get; set; } = true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Stato corrente dell'asta
|
|
/// </summary>
|
|
public enum AuctionStatus
|
|
{
|
|
Unknown, // Non determinato
|
|
Running, // Asta in corso (ON + timer attivo + utenti presenti)
|
|
Paused, // Asta in pausa (STOP nelle API - tipicamente 00:00-10:00)
|
|
EndedWon, // Asta terminata - HAI VINTO! (OFF + io sono last bidder)
|
|
EndedLost, // Asta terminata - Persa (OFF + altro è last bidder)
|
|
Pending, // In attesa di inizio (ON + no bidder + expiry < 30min)
|
|
Scheduled, // Programmata per più tardi (ON + no bidder + expiry > 30min)
|
|
Closed, // Asta chiusa/terminata (generico)
|
|
NotStarted // Non ancora iniziata (legacy)
|
|
}
|
|
}
|