Reset Server Button

- added new button to reset your server.
This commit is contained in:
Brett Hewitson 2022-06-15 20:01:05 +10:00
parent e2f92bf7a9
commit 9c5b096429
19 changed files with 308 additions and 136 deletions

View file

@ -576,6 +576,40 @@
<Label Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource ServerSettings_MapPathLabel}" ToolTip="{DynamicResource ServerSettings_MapPathTooltip}"/>
<ComboBox Grid.Row="0" Grid.Column="1" Margin="1" Name="GameMapComboBox" IsEditable="True" ItemsSource="{Binding BaseGameMaps, ElementName=SettingsControl, UpdateSourceTrigger=PropertyChanged}" SelectedValue="{Binding ServerMap, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" LostFocus="ComboBoxItemList_LostFocus" PreviewMouseWheel="ComboBox_PreviewMouseWheel" SourceUpdated="MapName_SourceUpdated" ToolTip="{DynamicResource ServerSettings_MapPathTooltip}"/>
<Button Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Margin="5,1,0,0" DataContext="{Binding Runtime, ElementName=SettingsControl}" Click="ResetServer_Click">
<Button.Style>
<Style BasedOn="{StaticResource {x:Type Button}}" TargetType="{x:Type Button}">
<Setter Property="Content" Value="{DynamicResource ServerSettings_ResetServerButtonLabel}"/>
<Setter Property="ToolTip" Value="{DynamicResource ServerSettings_ResetServerButtonTooltip}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Initializing}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Running}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Stopping}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Stopped}">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Unknown}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Updating}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="{x:Static enum:ServerStatus.Uninstalled}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Label Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Content="{DynamicResource ServerSettings_MapSaveNameLabel}" ToolTip="{DynamicResource ServerSettings_MapSaveNameTooltip}"/>
<TextBox Grid.Row="1" Grid.Column="1" Margin="1" VerticalContentAlignment="Center" Text="{Binding ServerMapSaveFileName}" ToolTip="{DynamicResource ServerSettings_MapSaveNameTooltip}"/>

View file

@ -849,6 +849,29 @@ namespace ServerManagerTool
MessageBox.Show(_globalizer.GetResourceString("ServerSettings_ServerAutoSettings_ErrorLabel"), _globalizer.GetResourceString("ServerSettings_ServerAutoSettings_ErrorTitle"), MessageBoxButton.OK, MessageBoxImage.Information);
}
private async void ResetServer_Click(object sender, RoutedEventArgs e)
{
if (MessageBox.Show(_globalizer.GetResourceString("ServerSettings_ResetServer_ConfirmationLabel"), _globalizer.GetResourceString("ServerSettings_ResetServer_Title"), MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes)
return;
try
{
Application.Current.Dispatcher.Invoke(() => this.Cursor = System.Windows.Input.Cursors.Wait);
await this.Server.ResetAsync();
MessageBox.Show(_globalizer.GetResourceString("ServerSettings_ResetServer_SuccessfulLabel"), _globalizer.GetResourceString("ServerSettings_ResetServer_Title"), MessageBoxButton.OK, MessageBoxImage.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, _globalizer.GetResourceString("ServerSettings_ResetServer_FailedTitle"), MessageBoxButton.OK, MessageBoxImage.Error);
}
finally
{
Application.Current.Dispatcher.Invoke(() => this.Cursor = null);
}
}
private async void SaveBackup_Click(object sender, RoutedEventArgs e)
{
try