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"
|
Padding="10,5"
|
||||||
FontSize="11"
|
FontSize="11"
|
||||||
Margin="3,0"
|
Margin="3,0"
|
||||||
Click="AddUrlButton_Click"/>
|
Click="AddUrlButton_Click"
|
||||||
|
ToolTip="Aggiungi nuova asta"/>
|
||||||
|
|
||||||
<Button Content="Rimuovi"
|
<Button Content="Rimuovi"
|
||||||
x:Name="RemoveUrlButton"
|
x:Name="RemoveUrlButton"
|
||||||
@@ -205,7 +206,18 @@
|
|||||||
Padding="10,5"
|
Padding="10,5"
|
||||||
FontSize="11"
|
FontSize="11"
|
||||||
Margin="3,0"
|
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>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|||||||
@@ -76,6 +76,11 @@ namespace AutoBidder.Controls
|
|||||||
{
|
{
|
||||||
RaiseEvent(new RoutedEventArgs(RemoveUrlClickedEvent, this));
|
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)
|
private void ExportButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
@@ -209,6 +214,9 @@ namespace AutoBidder.Controls
|
|||||||
|
|
||||||
public static readonly RoutedEvent RemoveUrlClickedEvent = EventManager.RegisterRoutedEvent(
|
public static readonly RoutedEvent RemoveUrlClickedEvent = EventManager.RegisterRoutedEvent(
|
||||||
"RemoveUrlClicked", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AuctionMonitorControl));
|
"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(
|
public static readonly RoutedEvent ExportClickedEvent = EventManager.RegisterRoutedEvent(
|
||||||
"ExportClicked", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AuctionMonitorControl));
|
"ExportClicked", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AuctionMonitorControl));
|
||||||
@@ -290,6 +298,12 @@ namespace AutoBidder.Controls
|
|||||||
add { AddHandler(RemoveUrlClickedEvent, value); }
|
add { AddHandler(RemoveUrlClickedEvent, value); }
|
||||||
remove { RemoveHandler(RemoveUrlClickedEvent, value); }
|
remove { RemoveHandler(RemoveUrlClickedEvent, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public event RoutedEventHandler RemoveAllClicked
|
||||||
|
{
|
||||||
|
add { AddHandler(RemoveAllClickedEvent, value); }
|
||||||
|
remove { RemoveHandler(RemoveAllClickedEvent, value); }
|
||||||
|
}
|
||||||
|
|
||||||
public event RoutedEventHandler ExportClicked
|
public event RoutedEventHandler ExportClicked
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -255,68 +255,71 @@ namespace AutoBidder
|
|||||||
MessageBox.Show($"Errore durante la rimozione:\n{ex.Message}", "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
|
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;
|
if (_auctionViewModels.Count == 0)
|
||||||
|
|
||||||
var result = MessageBox.Show(
|
|
||||||
"Ripristinare le impostazioni ai valori predefiniti?",
|
|
||||||
"Conferma Reset",
|
|
||||||
MessageBoxButton.YesNo,
|
|
||||||
MessageBoxImage.Question);
|
|
||||||
|
|
||||||
if (result == MessageBoxResult.Yes)
|
|
||||||
{
|
{
|
||||||
_selectedAuction.AuctionInfo.BidBeforeDeadlineMs = 200;
|
MessageBox.Show("Non ci sono aste da rimuovere", "Lista Vuota", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||||
_selectedAuction.AuctionInfo.CheckAuctionOpenBeforeBid = false;
|
return;
|
||||||
_selectedAuction.MinPrice = 0;
|
}
|
||||||
_selectedAuction.MaxPrice = 0;
|
|
||||||
_selectedAuction.MaxClicks = 0;
|
|
||||||
|
|
||||||
UpdateSelectedAuctionDetails(_selectedAuction);
|
var count = _auctionViewModels.Count;
|
||||||
Log($"Reset impostazioni: {_selectedAuction.Name}", LogLevel.Success);
|
|
||||||
|
// 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)
|
private async void CopyAuctionUrlButton_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)
|
|
||||||
{
|
{
|
||||||
if (_selectedAuction == null)
|
if (_selectedAuction == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -111,6 +111,11 @@ namespace AutoBidder
|
|||||||
{
|
{
|
||||||
RemoveUrlButton_Click(sender, e);
|
RemoveUrlButton_Click(sender, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AuctionMonitor_RemoveAllClicked(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
RemoveAllButton_Click(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
private void AuctionMonitor_AuctionSelectionChanged(object sender, RoutedEventArgs e)
|
private void AuctionMonitor_AuctionSelectionChanged(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -215,5 +215,107 @@ namespace AutoBidder
|
|||||||
Log($"[ERRORE] Esportazione asta: {ex.Message}", LogLevel.Error);
|
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"
|
ExportClicked="AuctionMonitor_ExportClicked"
|
||||||
AddUrlClicked="AuctionMonitor_AddUrlClicked"
|
AddUrlClicked="AuctionMonitor_AddUrlClicked"
|
||||||
RemoveUrlClicked="AuctionMonitor_RemoveUrlClicked"
|
RemoveUrlClicked="AuctionMonitor_RemoveUrlClicked"
|
||||||
|
RemoveAllClicked="AuctionMonitor_RemoveAllClicked"
|
||||||
AuctionSelectionChanged="AuctionMonitor_AuctionSelectionChanged"
|
AuctionSelectionChanged="AuctionMonitor_AuctionSelectionChanged"
|
||||||
CopyUrlClicked="AuctionMonitor_CopyUrlClicked"
|
CopyUrlClicked="AuctionMonitor_CopyUrlClicked"
|
||||||
OpenAuctionInternalClicked="AuctionMonitor_OpenAuctionInternalClicked"
|
OpenAuctionInternalClicked="AuctionMonitor_OpenAuctionInternalClicked"
|
||||||
|
|||||||
Reference in New Issue
Block a user