Files
DotNetSolutionTools/DotNetSolutionTools.App/Views/MainWindow.axaml
2024-05-21 19:12:32 +10:00

137 lines
10 KiB
XML

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="clr-namespace:DotNetSolutionTools.App.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="650"
Width="800" Height="650"
x:Class="DotNetSolutionTools.App.Views.MainWindow"
x:DataType="viewModels:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico"
Title="DotNetSolutionTools">
<Design.DataContext>
<!-- This only sets the DataContext for the previewer in an IDE,
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
<viewModels:MainWindowViewModel />
</Design.DataContext>
<DockPanel Width="{Binding $parent.Bounds.Width}" Height="{Binding $parent.Bounds.Height}">
<StackPanel Margin="5 10 5 5" Orientation="Vertical" DockPanel.Dock="Top">
<Grid Margin="5 0 5 0" ColumnDefinitions="Auto,*,Auto">
<Button Grid.Column="0" HorizontalContentAlignment="Center" Width="200" Command="{Binding LoadSolutionFolderCommand}">Select Solution Folder</Button>
<TextBlock Grid.Column="1" VerticalAlignment="Center" TextAlignment="Center" Name="SolutionFolderPath2" Text="{Binding SolutionFolderPath}" />
<Button Grid.Column="2" HorizontalContentAlignment="Center" Width="60" Command="{Binding ClearSolutionFolderCommand}">Clear</Button>
</Grid>
<Grid Margin="5 0 5 0" ColumnDefinitions="Auto,*,Auto">
<Button Grid.Column="0" Width="200" HorizontalContentAlignment="Center" Command="{Binding LoadSolutionFileCommand}">Select Solution File</Button>
<TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" Name="SolutionFilePath" Text="{Binding SolutionFilePath}" />
<Button Grid.Column="2" Width="60" HorizontalContentAlignment="Center" Command="{Binding ClearSolutionFileCommand}">Clear</Button>
</Grid>
<Grid Margin="5 0 5 0" ColumnDefinitions="Auto,*,Auto">
<Button Grid.Column="0" Width="200" HorizontalContentAlignment="Center" Command="{Binding LoadCsprojFileCommand}">Select CSharp Project File</Button>
<TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" Name="CsprojFilePath" Text="{Binding CsprojFilePath}" />
<Button Grid.Column="2" Width="60" HorizontalContentAlignment="Center" Command="{Binding ClearCsprojFileCommand}">Clear</Button>
</Grid>
<Grid Margin="0 5 0 0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ShowGridLines="False" RowDefinitions="*,*,*,*" ColumnDefinitions="*,*,*">
<Button Grid.Row="0" Grid.Column="0" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFolderPath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding ExecuteParityCheckerCommand}">
<TextBlock TextWrapping="Wrap">
Check Solution Parity
</TextBlock>
</Button>
<Button Grid.Row="0" Grid.Column="1" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding CsprojFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding FormatCsProjFileCommand}">
<TextBlock TextWrapping="Wrap">
Format CSharp Project File
</TextBlock>
</Button>
<Button Grid.Row="0" Grid.Column="2" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding FormatAllCsprojFilesInSolutionFileCommand}">
<TextBlock TextWrapping="Wrap">
Format All CSharp Project Files in Solution
</TextBlock>
</Button>
<Button Grid.Row="1" Grid.Column="0" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFolderPath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding FormatAllCsprojFilesInSolutionFolderCommand}">
<TextBlock TextWrapping="Wrap">
Format All CSharp Project Files in Folder
</TextBlock>
</Button>
<Button Grid.Row="1" Grid.Column="1" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding CheckForMissingImplicitUsingsInSolutionFileCommand}">
<TextBlock TextWrapping="Wrap">
Check For Missing Implicit Usings
</TextBlock>
</Button>
<Button Grid.Row="1" Grid.Column="2" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding CheckForMissingTreatWarningsAsErrorsInSolutionFileCommand}">
<TextBlock TextWrapping="Wrap">
Check For Missing Treat Warnings as Errors
</TextBlock>
</Button>
<Button Grid.Row="2" Grid.Column="0" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFolderPath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding DeleteBinAndObjFoldersInFolderCommand}">
<StackPanel>
<TextBlock TextWrapping="Wrap">
Clear bin and obj folders
</TextBlock>
<TextBlock TextWrapping="Wrap">
(and node_modules)
</TextBlock>
</StackPanel>
</Button>
<Button Grid.Row="2" Grid.Column="1" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding UpdateAllProjectsToNet80Command}">
<TextBlock TextWrapping="Wrap">
Update all projects in Solution to .NET 8.0
</TextBlock>
</Button>
<Button Grid.Row="2" Grid.Column="2" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding CsprojFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding UpdateProjectToNet80Command}">
<TextBlock TextWrapping="Wrap">
Update C# Project to .NET 8.0
</TextBlock>
</Button>
<Button Grid.Row="3" Grid.Column="0" MinHeight="100" Padding="10" Margin="5"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
IsEnabled="{Binding SolutionFilePath, Mode=OneWay, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
Command="{Binding CheckForInconsistentNugetPackageVersionsInSolutionFileCommand}">
<TextBlock TextWrapping="Wrap">
Check for Inconsistent Nuget Package Versions
</TextBlock>
</Button>
</Grid>
<Label Width="{Binding $parent.Bounds.Width}" Background="{Binding ResultsLabelColor}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" Name="ResultsLabel" Content="{Binding ResultsLabel}"></Label>
</StackPanel>
<ScrollViewer Width="{Binding $parent.Bounds.Width}">
<ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" Name="Results" ItemsSource="{Binding OperationResults}" />
</ScrollViewer>
</DockPanel>
</Window>