Files
Data-Coupler/Scripts/uninstall-service.ps1
Alessio d042863a56 feat: Implementazione completa sistema schedulazione con intervalli personalizzati
- Aggiunto supporto schedulazione con intervalli flessibili (secondi/minuti/ore/giorni/settimane/mesi)
- Esteso modello ProfileSchedule con campi IntervalValue e IntervalUnit
- Ottimizzato ScheduledJobService per controlli ogni 30s con esecuzione parallela
- Implementata interfaccia UI completa con anteprima real-time in italiano
- Aggiunta migrazione database AddIntervalSchedulingFields
- Implementati metodi calcolo NextExecutionTime per intervalli
- Aggiunta gestione tracking anti-duplicati e cleanup automatico
- Creata documentazione completa (6 file, 2500+ righe)

Modifiche tecniche:
- ProfileSchedule.cs: Nuovi campi e metodi CalculateNextInterval/GetScheduleDescription
- ScheduledJobService.cs: Ridotto check interval a 30s, aggiunto parallel processing
- ProfileScheduleService.cs: Supporto calcolo intervalli in UpdateNextExecutionTimeAsync
- Scheduling.razor: Aggiunta sezione UI per configurazione intervalli
- Scheduling.razor.cs: Implementato GetIntervalPreview() e gestione stato campi
2025-10-02 01:12:39 +02:00

68 lines
2.7 KiB
PowerShell

# Script di disinstallazione del servizio Windows per Data Coupler
# Eseguire come Amministratore
param(
[string]$ServiceName = "DataCouplerService"
)
Write-Host "Disinstallazione Data Coupler Windows Service..." -ForegroundColor Yellow
try {
# Verifica se il servizio esiste
$service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($service) {
Write-Host "Fermando il servizio $ServiceName..." -ForegroundColor Yellow
Stop-Service -Name $ServiceName -Force -ErrorAction SilentlyContinue
# Attende che il servizio si fermi completamente
$timeout = 30
$counter = 0
while ((Get-Service -Name $ServiceName).Status -eq 'Running' -and $counter -lt $timeout) {
Start-Sleep -Seconds 1
$counter++
Write-Host "." -NoNewline
}
Write-Host ""
if ((Get-Service -Name $ServiceName).Status -eq 'Running') {
Write-Warning "Il servizio non si è fermato entro $timeout secondi. Forzo la terminazione..."
# Qui potresti aggiungere logica per terminare forzatamente il processo
}
Write-Host "Rimuovendo il servizio $ServiceName..." -ForegroundColor Yellow
sc.exe delete $ServiceName
# Verifica che il servizio sia stato rimosso
Start-Sleep -Seconds 2
$removedService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if (-not $removedService) {
Write-Host "Servizio rimosso con successo!" -ForegroundColor Green
} else {
Write-Warning "Il servizio potrebbe non essere stato completamente rimosso. Prova a riavviare il sistema."
}
} else {
Write-Host "Il servizio $ServiceName non è installato." -ForegroundColor Yellow
}
Write-Host "`nNOTA: I dati del database e le configurazioni sono conservati in C:\ProgramData\Data_Coupler" -ForegroundColor Cyan
$response = Read-Host "Vuoi rimuovere anche i dati dell'applicazione? (y/N)"
if ($response -eq 'y' -or $response -eq 'Y') {
$dataPath = "C:\ProgramData\Data_Coupler"
if (Test-Path $dataPath) {
Write-Host "Rimuovendo i dati dell'applicazione..." -ForegroundColor Yellow
Remove-Item -Path $dataPath -Recurse -Force
Write-Host "Dati dell'applicazione rimossi." -ForegroundColor Green
}
} else {
Write-Host "I dati dell'applicazione sono stati mantenuti in C:\ProgramData\Data_Coupler" -ForegroundColor Cyan
}
}
catch {
Write-Error "Errore durante la disinstallazione del servizio: $($_.Exception.Message)"
exit 1
}
Write-Host "`nDisinstallazione completata." -ForegroundColor Green