Aggiunto pulsante "Rimuovi Tutte" e miglioramenti UI
- Aggiunto il pulsante "Rimuovi Tutte" in `AuctionMonitorControl.xaml` per eliminare tutte le aste monitorate. - Implementato il metodo `RemoveAllButton_Click` in `AuctionMonitorControl.xaml.cs` e registrato il nuovo evento routed `RemoveAllClickedEvent`. - Aggiunto il gestore `AuctionMonitor_RemoveAllClicked` in `MainWindow.ControlEvents.cs` e collegato l'evento in `MainWindow.xaml`. - Migliorata la gestione degli errori e aggiunti messaggi di conferma dettagliati. - Introdotti nuovi metodi di utilità per resettare le impostazioni, pulire la lista utenti e il log di un'asta selezionata. - Rimosso codice obsoleto per semplificare la base di codice.
This commit is contained in:
@@ -196,7 +196,8 @@
|
||||
Padding="10,5"
|
||||
FontSize="11"
|
||||
Margin="3,0"
|
||||
Click="AddUrlButton_Click"/>
|
||||
Click="AddUrlButton_Click"
|
||||
ToolTip="Aggiungi nuova asta"/>
|
||||
|
||||
<Button Content="Rimuovi"
|
||||
x:Name="RemoveUrlButton"
|
||||
@@ -205,7 +206,18 @@
|
||||
Padding="10,5"
|
||||
FontSize="11"
|
||||
Margin="3,0"
|
||||
Click="RemoveUrlButton_Click"/>
|
||||
Click="RemoveUrlButton_Click"
|
||||
ToolTip="Rimuovi asta selezionata"/>
|
||||
|
||||
<Button Content="Rimuovi Tutte"
|
||||
x:Name="RemoveAllButton"
|
||||
Background="#E81123"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="10,5"
|
||||
FontSize="11"
|
||||
Margin="3,0"
|
||||
Click="RemoveAllButton_Click"
|
||||
ToolTip="Rimuovi tutte le aste monitorate"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@@ -76,6 +76,11 @@ namespace AutoBidder.Controls
|
||||
{
|
||||
RaiseEvent(new RoutedEventArgs(RemoveUrlClickedEvent, this));
|
||||
}
|
||||
|
||||
private void RemoveAllButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RaiseEvent(new RoutedEventArgs(RemoveAllClickedEvent, this));
|
||||
}
|
||||
|
||||
private void ExportButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
@@ -209,6 +214,9 @@ namespace AutoBidder.Controls
|
||||
|
||||
public static readonly RoutedEvent RemoveUrlClickedEvent = EventManager.RegisterRoutedEvent(
|
||||
"RemoveUrlClicked", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AuctionMonitorControl));
|
||||
|
||||
public static readonly RoutedEvent RemoveAllClickedEvent = EventManager.RegisterRoutedEvent(
|
||||
"RemoveAllClicked", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AuctionMonitorControl));
|
||||
|
||||
public static readonly RoutedEvent ExportClickedEvent = EventManager.RegisterRoutedEvent(
|
||||
"ExportClicked", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AuctionMonitorControl));
|
||||
@@ -290,6 +298,12 @@ namespace AutoBidder.Controls
|
||||
add { AddHandler(RemoveUrlClickedEvent, value); }
|
||||
remove { RemoveHandler(RemoveUrlClickedEvent, value); }
|
||||
}
|
||||
|
||||
public event RoutedEventHandler RemoveAllClicked
|
||||
{
|
||||
add { AddHandler(RemoveAllClickedEvent, value); }
|
||||
remove { RemoveHandler(RemoveAllClickedEvent, value); }
|
||||
}
|
||||
|
||||
public event RoutedEventHandler ExportClicked
|
||||
{
|
||||
|
||||
@@ -255,68 +255,71 @@ namespace AutoBidder
|
||||
MessageBox.Show($"Errore durante la rimozione:\n{ex.Message}", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ResetSettingsButton_Click(object sender, RoutedEventArgs e)
|
||||
|
||||
private void RemoveAllButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_selectedAuction == null) return;
|
||||
|
||||
var result = MessageBox.Show(
|
||||
"Ripristinare le impostazioni ai valori predefiniti?",
|
||||
"Conferma Reset",
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
if (_auctionViewModels.Count == 0)
|
||||
{
|
||||
_selectedAuction.AuctionInfo.BidBeforeDeadlineMs = 200;
|
||||
_selectedAuction.AuctionInfo.CheckAuctionOpenBeforeBid = false;
|
||||
_selectedAuction.MinPrice = 0;
|
||||
_selectedAuction.MaxPrice = 0;
|
||||
_selectedAuction.MaxClicks = 0;
|
||||
MessageBox.Show("Non ci sono aste da rimuovere", "Lista Vuota", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
UpdateSelectedAuctionDetails(_selectedAuction);
|
||||
Log($"Reset impostazioni: {_selectedAuction.Name}", LogLevel.Success);
|
||||
var count = _auctionViewModels.Count;
|
||||
|
||||
// Conferma rimozione
|
||||
var result = MessageBox.Show(
|
||||
$"Rimuovere TUTTE le aste dal monitoraggio?\n\nSono presenti {count} aste monitorate.\n\nTutte le aste verranno eliminate dalla lista e non saranno più monitorate.",
|
||||
"Conferma Rimozione Totale",
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Warning);
|
||||
|
||||
if (result != MessageBoxResult.Yes)
|
||||
{
|
||||
Log($"[REMOVE ALL] Rimozione annullata", LogLevel.Info);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Ferma il monitoraggio se attivo
|
||||
if (_isAutomationActive)
|
||||
{
|
||||
_auctionMonitor.Stop();
|
||||
_isAutomationActive = false;
|
||||
Log("[STOP] Monitoraggio fermato prima della rimozione totale", LogLevel.Info);
|
||||
}
|
||||
|
||||
// Rimuove tutte le aste dal monitor e dal ViewModel
|
||||
var auctionsToRemove = _auctionViewModels.ToList(); // Copia per evitare modifiche durante iterazione
|
||||
|
||||
foreach (var auction in auctionsToRemove)
|
||||
{
|
||||
_auctionMonitor.RemoveAuction(auction.AuctionId);
|
||||
}
|
||||
|
||||
// Pulisci la lista ViewModel
|
||||
_auctionViewModels.Clear();
|
||||
|
||||
// Resetta selezione
|
||||
_selectedAuction = null;
|
||||
|
||||
// Salva modifiche
|
||||
SaveAuctions();
|
||||
UpdateTotalCount();
|
||||
UpdateGlobalControlButtons();
|
||||
|
||||
Log($"[REMOVE ALL] Tutte le aste rimosse: {count} aste eliminate", LogLevel.Success);
|
||||
|
||||
MessageBox.Show($"Tutte le {count} aste sono state rimosse dal monitoraggio.", "Rimozione Completata", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log($"[ERROR] Errore rimozione totale: {ex.Message}", LogLevel.Error);
|
||||
MessageBox.Show($"Errore durante la rimozione delle aste: {ex.Message}", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearBiddersButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_selectedAuction == null) return;
|
||||
|
||||
var result = MessageBox.Show(
|
||||
"Cancellare la lista degli utenti?",
|
||||
"Conferma Pulizia",
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
_selectedAuction.AuctionInfo.BidderStats.Clear();
|
||||
SelectedAuctionBiddersGrid.ItemsSource = null;
|
||||
SelectedAuctionBiddersCount.Text = "Utenti: 0";
|
||||
Log($"[CLEAR] Lista utenti pulita: {_selectedAuction.Name}", LogLevel.Info);
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearLogButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_selectedAuction == null) return;
|
||||
|
||||
var result = MessageBox.Show(
|
||||
"Cancellare il log dell'asta?",
|
||||
"Conferma Pulizia",
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
_selectedAuction.AuctionInfo.AuctionLog.Clear();
|
||||
SelectedAuctionLog.Document.Blocks.Clear();
|
||||
Log($"Log pulito: {_selectedAuction.Name}", LogLevel.Success);
|
||||
}
|
||||
}
|
||||
|
||||
private void CopyAuctionUrlButton_Click(object sender, RoutedEventArgs e)
|
||||
private async void CopyAuctionUrlButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_selectedAuction == null)
|
||||
{
|
||||
|
||||
@@ -111,6 +111,11 @@ namespace AutoBidder
|
||||
{
|
||||
RemoveUrlButton_Click(sender, e);
|
||||
}
|
||||
|
||||
private void AuctionMonitor_RemoveAllClicked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RemoveAllButton_Click(sender, e);
|
||||
}
|
||||
|
||||
private void AuctionMonitor_AuctionSelectionChanged(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
@@ -215,5 +215,107 @@ namespace AutoBidder
|
||||
Log($"[ERRORE] Esportazione asta: {ex.Message}", LogLevel.Error);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resetta le impostazioni dell'asta selezionata ai valori predefiniti
|
||||
/// </summary>
|
||||
private void ResetSettingsButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_selectedAuction == null)
|
||||
{
|
||||
MessageBox.Show("Seleziona un'asta dalla griglia", "Nessuna Selezione", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
var settings = SettingsManager.Load();
|
||||
|
||||
// Resetta ai valori predefiniti dalle impostazioni
|
||||
_selectedAuction.AuctionInfo.BidBeforeDeadlineMs = settings.DefaultBidBeforeDeadlineMs;
|
||||
_selectedAuction.AuctionInfo.CheckAuctionOpenBeforeBid = settings.DefaultCheckAuctionOpenBeforeBid;
|
||||
_selectedAuction.MinPrice = settings.DefaultMinPrice;
|
||||
_selectedAuction.MaxPrice = settings.DefaultMaxPrice;
|
||||
_selectedAuction.MaxClicks = settings.DefaultMaxClicks;
|
||||
|
||||
// Aggiorna UI
|
||||
UpdateAuctionSettingsDisplay(_selectedAuction);
|
||||
|
||||
// Salva
|
||||
SaveAuctions();
|
||||
|
||||
Log($"[RESET] Impostazioni ripristinate ai valori predefiniti per: {_selectedAuction.Name}", LogLevel.Info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log($"[ERRORE] Reset impostazioni: {ex.Message}", LogLevel.Error);
|
||||
MessageBox.Show($"Errore durante il reset: {ex.Message}", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Pulisce la lista degli utenti che hanno puntato sull'asta selezionata
|
||||
/// </summary>
|
||||
private void ClearBiddersButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_selectedAuction == null)
|
||||
{
|
||||
MessageBox.Show("Seleziona un'asta dalla griglia", "Nessuna Selezione", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
var result = MessageBox.Show(
|
||||
$"Pulire la lista degli utenti per questa asta?\n\n{_selectedAuction.Name}\n\nLa lista degli utenti che hanno puntato verrà svuotata.",
|
||||
"Conferma Pulizia",
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question);
|
||||
|
||||
if (result != MessageBoxResult.Yes)
|
||||
return;
|
||||
|
||||
// Pulisci la lista bidders
|
||||
_selectedAuction.AuctionInfo.BidderStats.Clear();
|
||||
|
||||
// Aggiorna UI
|
||||
RefreshBiddersGrid(_selectedAuction);
|
||||
|
||||
Log($"[CLEAR] Lista utenti pulita per: {_selectedAuction.Name}", LogLevel.Info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log($"[ERRORE] Pulizia lista utenti: {ex.Message}", LogLevel.Error);
|
||||
MessageBox.Show($"Errore durante la pulizia: {ex.Message}", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Pulisce il log dell'asta selezionata
|
||||
/// </summary>
|
||||
private void ClearLogButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_selectedAuction == null)
|
||||
{
|
||||
MessageBox.Show("Seleziona un'asta dalla griglia", "Nessuna Selezione", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
// Pulisci il log dell'asta
|
||||
_selectedAuction.AuctionInfo.AuctionLog.Clear();
|
||||
|
||||
// Aggiorna UI
|
||||
UpdateAuctionLog(_selectedAuction);
|
||||
|
||||
Log($"[CLEAR] Log pulito per: {_selectedAuction.Name}", LogLevel.Info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log($"[ERRORE] Pulizia log asta: {ex.Message}", LogLevel.Error);
|
||||
MessageBox.Show($"Errore durante la pulizia: {ex.Message}", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
ExportClicked="AuctionMonitor_ExportClicked"
|
||||
AddUrlClicked="AuctionMonitor_AddUrlClicked"
|
||||
RemoveUrlClicked="AuctionMonitor_RemoveUrlClicked"
|
||||
RemoveAllClicked="AuctionMonitor_RemoveAllClicked"
|
||||
AuctionSelectionChanged="AuctionMonitor_AuctionSelectionChanged"
|
||||
CopyUrlClicked="AuctionMonitor_CopyUrlClicked"
|
||||
OpenAuctionInternalClicked="AuctionMonitor_OpenAuctionInternalClicked"
|
||||
|
||||
Reference in New Issue
Block a user