# Script para agregar método NombreCategoria a archivos de osBase
$files = @(
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Decorativos\ucCustomImage.xaml.cs"; Category="Decorativos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Decorativos\ucFramePlate.xaml.cs"; Category="Decorativos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Decorativos\ucTextPlate.xaml.cs"; Category="Decorativos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucDescarte.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucGuia.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucTransporteCurvaGuias.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucTransporteGuias.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucTransporteGuiasUnion.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucTransporteTTop.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucTransporteTTopDualInverter.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Estaticos\ucVMmotorSim.xaml.cs"; Category="Estaticos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Extraccion Datos\ucBuscarCoincidencias.xaml.cs"; Category="Extraccion Datos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Extraccion Datos\ucExtraccionTag.xaml.cs"; Category="Extraccion Datos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\SensoresComandos\ucBoton.xaml.cs"; Category="SensoresComandos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\SensoresComandos\ucEncoderMotor.xaml.cs"; Category="SensoresComandos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\SensoresComandos\ucEncoderMotorLineal.xaml.cs"; Category="SensoresComandos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\SensoresComandos\ucGearEncoder.xaml.cs"; Category="SensoresComandos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\SensoresComandos\ucPhotocell.xaml.cs"; Category="SensoresComandos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\SensoresComandos\ucSensTemperatura.xaml.cs"; Category="SensoresComandos"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\TagsSignals\ucAnalogTag.xaml.cs"; Category="TagsSignals"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\TagsSignals\ucBoolTag.xaml.cs"; Category="TagsSignals"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\TagsSignals\ucConsensGeneric.xaml.cs"; Category="TagsSignals"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Traces\ucTrace3.xaml.cs"; Category="Traces"},
    @{Path="d:\Proyectos\VisualStudio\CtrEditor\ObjetosSim\Traces\ucTraceSimple.xaml.cs"; Category="Traces"}
)

foreach ($file in $files) {
    if (Test-Path $file.Path) {
        Write-Host "Processing: $($file.Path)"
        Write-Host "Category: $($file.Category)"
        
        # Buscar la línea que contiene "public static string NombreClase()"
        $content = Get-Content $file.Path
        $lineIndex = -1
        for ($i = 0; $i -lt $content.Length; $i++) {
            if ($content[$i].Trim() -eq "public static string NombreClase()") {
                $lineIndex = $i
                break
            }
        }
        
        if ($lineIndex -ne -1) {
            # Encontrar el final del método NombreClase (la línea que contiene "}")
            $endIndex = -1
            for ($i = $lineIndex + 1; $i -lt $content.Length; $i++) {
                if ($content[$i].Trim() -eq "}") {
                    $endIndex = $i
                    break
                }
            }
            
            if ($endIndex -ne -1) {
                Write-Host "Found NombreClase method at lines $($lineIndex + 1) to $($endIndex + 1)"
                Write-Host "Method body:"
                for ($i = $lineIndex; $i -le $endIndex; $i++) {
                    Write-Host "  $($content[$i])"
                }
                Write-Host ""
            }
        }
    }
}
