diff --git a/Mimante/Controls/AuctionMonitorControl.xaml b/Mimante/Controls/AuctionMonitorControl.xaml
index c358e0a..3cf3574 100644
--- a/Mimante/Controls/AuctionMonitorControl.xaml
+++ b/Mimante/Controls/AuctionMonitorControl.xaml
@@ -196,7 +196,8 @@
Padding="10,5"
FontSize="11"
Margin="3,0"
- Click="AddUrlButton_Click"/>
+ Click="AddUrlButton_Click"
+ ToolTip="Aggiungi nuova asta"/>
+ Click="RemoveUrlButton_Click"
+ ToolTip="Rimuovi asta selezionata"/>
+
+
diff --git a/Mimante/Controls/AuctionMonitorControl.xaml.cs b/Mimante/Controls/AuctionMonitorControl.xaml.cs
index 8ca8054..571bbd9 100644
--- a/Mimante/Controls/AuctionMonitorControl.xaml.cs
+++ b/Mimante/Controls/AuctionMonitorControl.xaml.cs
@@ -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
{
diff --git a/Mimante/Core/MainWindow.ButtonHandlers.cs b/Mimante/Core/MainWindow.ButtonHandlers.cs
index d9e4c8b..983588b 100644
--- a/Mimante/Core/MainWindow.ButtonHandlers.cs
+++ b/Mimante/Core/MainWindow.ButtonHandlers.cs
@@ -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)
{
diff --git a/Mimante/Core/MainWindow.ControlEvents.cs b/Mimante/Core/MainWindow.ControlEvents.cs
index b5f72ef..9569e67 100644
--- a/Mimante/Core/MainWindow.ControlEvents.cs
+++ b/Mimante/Core/MainWindow.ControlEvents.cs
@@ -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)
{
diff --git a/Mimante/Core/MainWindow.UIUpdates.cs b/Mimante/Core/MainWindow.UIUpdates.cs
index 49315ce..b99e98a 100644
--- a/Mimante/Core/MainWindow.UIUpdates.cs
+++ b/Mimante/Core/MainWindow.UIUpdates.cs
@@ -215,5 +215,107 @@ namespace AutoBidder
Log($"[ERRORE] Esportazione asta: {ex.Message}", LogLevel.Error);
}
}
+
+ ///
+ /// Resetta le impostazioni dell'asta selezionata ai valori predefiniti
+ ///
+ 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);
+ }
+ }
+
+ ///
+ /// Pulisce la lista degli utenti che hanno puntato sull'asta selezionata
+ ///
+ 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);
+ }
+ }
+
+ ///
+ /// Pulisce il log dell'asta selezionata
+ ///
+ 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);
+ }
+ }
}
}
diff --git a/Mimante/MainWindow.xaml b/Mimante/MainWindow.xaml
index b1f76c3..b4002a4 100644
--- a/Mimante/MainWindow.xaml
+++ b/Mimante/MainWindow.xaml
@@ -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"