- Implement ThemeManager for dynamic light/dark theme switching in the application. - Create Wait class for cancellable delays without exceptions for smoother user experience. - Introduce WatchedProductsStore to manage and persist watched products in JSON format. - Add WindowsNotifier for system notifications to inform users of important events. - Develop ProductViewModel to encapsulate product data and manage UI interactions effectively.
35 lines
1.5 KiB
C#
35 lines
1.5 KiB
C#
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using AutoBidder.Models;
|
|
|
|
namespace AutoBidder.Services
|
|
{
|
|
/// <summary>
|
|
/// Legge la pagina delle ricompense di Bidoo e riscuote ciò che è rimasto da prendere.
|
|
///
|
|
/// <para>È un'interfaccia perché il riscatto è la sola parte di questa funzionalità che
|
|
/// dipende dal formato del sito: potendola sostituire, la logica di temporizzazione e i
|
|
/// contatori restano verificabili senza toccare la rete.</para>
|
|
/// </summary>
|
|
public interface IFreeBidsClaimer
|
|
{
|
|
/// <summary>Guarda cosa c'è da riscuotere, senza riscuotere nulla.</summary>
|
|
Task<FreeBidsPageScan> ScanAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Riscuote tutte le ricompense disponibili. Non solleva per un premio fallito:
|
|
/// prosegue con gli altri e riporta quanti ne ha presi.
|
|
/// </summary>
|
|
Task<FreeBidsClaimResult> ClaimAllAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Riscuote un codice o un collegamento promozionale indicato dall'utente.
|
|
///
|
|
/// <para>Sta qui e non nel giro automatico perché è l'unica parte che ha bisogno di
|
|
/// un dato che l'applicazione non può scoprire da sola: quei premi arrivano per email
|
|
/// o per messaggio, e vanno incollati.</para>
|
|
/// </summary>
|
|
Task<FreeBidsClaimResult> ClaimPromoAsync(string codeOrLink, CancellationToken cancellationToken = default);
|
|
}
|
|
}
|