Refactor C# code to imperative, top-level statements style

Updated the existing C# code into a more modern, imperative and top-level statements style. This involves shortening the code by removing unnecessary parts like additional brackets and explicit namespace declarations. It's done to improve clarity and readability.
This commit is contained in:
Philipp Heenemann 2023-07-12 09:19:33 +02:00
parent d6aaeda28c
commit a8b91f4ee6
44 changed files with 1905 additions and 2005 deletions

View File

@ -4,8 +4,8 @@ using Avalonia.Markup.Xaml;
using SPTInstaller.ViewModels;
using SPTInstaller.Views;
namespace SPTInstaller
{
namespace SPTInstaller;
public partial class App : Application
{
public override void Initialize()
@ -26,4 +26,3 @@ namespace SPTInstaller
base.OnFrameworkInitializationCompleted();
}
}
}

View File

@ -1,8 +1,8 @@
using Avalonia;
using Avalonia.Interactivity;
namespace SPTInstaller.Behaviors
{
namespace SPTInstaller.Behaviors;
public class SpanBehavior : AvaloniaObject
{
public static readonly AttachedProperty<bool> SpanProperty = AvaloniaProperty.RegisterAttached<SpanBehavior, Interactive, bool>("Span");
@ -17,4 +17,3 @@ namespace SPTInstaller.Behaviors
return element.GetValue(SpanProperty);
}
}
}

View File

@ -2,12 +2,12 @@
using SharpCompress;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace SPTInstaller.Controllers
{
namespace SPTInstaller.Controllers;
public class InstallController
{
public event EventHandler<IProgressableTask> TaskChanged = delegate { };
@ -40,9 +40,8 @@ namespace SPTInstaller.Controllers
}
}
foreach(var result in requiredResults)
if (requiredResults.Any(result => !result.Succeeded))
{
if (!result.Succeeded)
return Result.FromError("Some required checks have failed");
}
@ -65,4 +64,3 @@ namespace SPTInstaller.Controllers
return Result.FromSuccess("Install Complete. Happy Playing!");
}
}
}

View File

@ -1,9 +1,8 @@
using Avalonia.Data.Converters;
using System;
using System.Globalization;
namespace SPTInstaller.Converters
{
namespace SPTInstaller.Converters;
public class InvertedProgressConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
@ -26,4 +25,3 @@ namespace SPTInstaller.Converters
return value;
}
}
}

View File

@ -1,11 +1,10 @@
using Avalonia;
using Avalonia.Controls;
using SPTInstaller.Behaviors;
using System;
using System.Linq;
namespace SPTInstaller.CustomControls
{
namespace SPTInstaller.CustomControls;
public class DistributedSpacePanel : Panel
{
protected override Size MeasureOverride(Size availableSize)
@ -74,4 +73,3 @@ namespace SPTInstaller.CustomControls
return finalSize;
}
}
}

View File

@ -1,12 +1,8 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Shapes;
using Avalonia.Threading;
using ReactiveUI;
using System.Windows.Input;
namespace SPTInstaller.CustomControls
{
namespace SPTInstaller.CustomControls;
public partial class PreCheckItem : UserControl
{
public PreCheckItem()
@ -59,4 +55,3 @@ namespace SPTInstaller.CustomControls
public static readonly StyledProperty<bool> IsRequiredProperty =
AvaloniaProperty.Register<PreCheckItem, bool>(nameof(IsRequired));
}
}

View File

@ -2,8 +2,8 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
namespace SPTInstaller.CustomControls
{
namespace SPTInstaller.CustomControls;
public partial class ProgressableTaskItem : UserControl
{
public ProgressableTaskItem()
@ -74,4 +74,3 @@ namespace SPTInstaller.CustomControls
public static readonly StyledProperty<IBrush> CompletedColorProperty =
AvaloniaProperty.Register<ProgressableTaskItem, IBrush>(nameof(PendingColor));
}
}

View File

@ -2,16 +2,14 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Threading;
using DynamicData;
using DynamicData.Binding;
using SPTInstaller.Models;
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
namespace SPTInstaller.CustomControls
{
namespace SPTInstaller.CustomControls;
public partial class ProgressableTaskList : UserControl
{
public ProgressableTaskList()
@ -94,4 +92,3 @@ namespace SPTInstaller.CustomControls
}
}
}
}

View File

@ -1,8 +1,8 @@
using Avalonia;
using Avalonia.Controls;
namespace SPTInstaller.CustomControls
{
namespace SPTInstaller.CustomControls;
public partial class TaskDetails : UserControl
{
public TaskDetails()
@ -55,4 +55,3 @@ namespace SPTInstaller.CustomControls
public static readonly StyledProperty<bool> IndeterminateProgressProperty =
AvaloniaProperty.Register<TaskDetails, bool>(nameof(IndeterminateProgress));
}
}

View File

@ -4,8 +4,8 @@ using Avalonia.Markup.Xaml;
using Avalonia.Media;
using System.Windows.Input;
namespace SPTInstaller.CustomControls
{
namespace SPTInstaller.CustomControls;
public partial class TitleBar : UserControl
{
public TitleBar()
@ -74,4 +74,3 @@ namespace SPTInstaller.CustomControls
set => SetValue(MinButtonCommandProperty, value);
}
}
}

View File

@ -1,16 +1,13 @@
using HttpClientProgress;
using System.Net.Http;
using System.Threading.Tasks;
using Serilog;
using SPTInstaller.Models;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
namespace SPTInstaller.Aki.Helper
{
namespace SPTInstaller.Helpers;
public static class DownloadCacheHelper
{
private static HttpClient _httpClient = new HttpClient() { Timeout = TimeSpan.FromHours(1) };
private static HttpClient _httpClient = new() { Timeout = TimeSpan.FromHours(1) };
private static string _cachePath = Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "spt-installer/cache");
@ -111,7 +108,7 @@ namespace SPTInstaller.Aki.Helper
public static async Task<FileInfo?> GetOrDownloadFileAsync(string fileName, string targetLink, IProgress<double> progress, string expectedHash = null)
{
FileInfo cacheFile = new FileInfo(Path.Join(_cachePath, fileName));
var cacheFile = new FileInfo(Path.Join(_cachePath, fileName));
try
{
@ -128,7 +125,7 @@ namespace SPTInstaller.Aki.Helper
public static async Task<FileInfo?> GetOrDownloadFileAsync(string fileName, Stream fileDownloadStream, string expectedHash = null)
{
FileInfo cacheFile = new FileInfo(Path.Join(_cachePath, fileName));
var cacheFile = new FileInfo(Path.Join(_cachePath, fileName));
try
{
@ -143,4 +140,3 @@ namespace SPTInstaller.Aki.Helper
}
}
}
}

View File

@ -1,15 +1,13 @@
using Gitea.Model;
using System;
using System.IO;
using System.Linq;
using System.Linq;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
using Gitea.Model;
namespace SPTInstaller.Helpers;
namespace SPTInstaller.Aki.Helper
{
public static class FileHashHelper
{
public static string GetGiteaReleaseHash(Release release)
public static string? GetGiteaReleaseHash(Release release)
{
var regex = Regex.Match(release.Body, @"Release Hash: (?<hash>\S+)");
@ -23,16 +21,14 @@ namespace SPTInstaller.Aki.Helper
public static bool CheckHash(FileInfo file, string expectedHash)
{
using (MD5 md5Service = MD5.Create())
using (var sourceStream = file.OpenRead())
{
byte[] sourceHash = md5Service.ComputeHash(sourceStream);
byte[] expectedHashBytes = Convert.FromBase64String(expectedHash);
using var md5Service = MD5.Create();
using var sourceStream = file.OpenRead();
bool matched = Enumerable.SequenceEqual(sourceHash, expectedHashBytes);
var sourceHash = md5Service.ComputeHash(sourceStream);
var expectedHashBytes = Convert.FromBase64String(expectedHash);
var matched = Enumerable.SequenceEqual(sourceHash, expectedHashBytes);
return matched;
}
}
}
}

View File

@ -1,12 +1,9 @@
using ReactiveUI;
using System.Text.RegularExpressions;
using Serilog;
using SPTInstaller.Models;
using System;
using System.IO;
using System.Text.RegularExpressions;
namespace SPTInstaller.Aki.Helper
{
namespace SPTInstaller.Helpers;
public static class FileHelper
{
private static Result IterateDirectories(DirectoryInfo sourceDir, DirectoryInfo targetDir)
@ -87,4 +84,3 @@ namespace SPTInstaller.Aki.Helper
}
}
}
}

View File

@ -1,11 +1,9 @@
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
namespace HttpClientProgress
{
namespace SPTInstaller.Helpers;
public static class HttpClientProgressExtensions
{
public static async Task DownloadDataAsync(this HttpClient client, string requestUrl, Stream destination, IProgress<double> progress = null, CancellationToken cancellationToken = default(CancellationToken))
@ -54,4 +52,3 @@ namespace HttpClientProgress
}
}
}
}

View File

@ -1,12 +1,10 @@
using Microsoft.Win32;
using SPTInstaller.Models;
using System;
using System.Diagnostics;
using System.IO;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using SPTInstaller.Models;
namespace SPTInstaller.Helpers;
namespace SPTInstaller.Aki.Helper
{
public static class PreCheckHelper
{
private const string registryInstall = @"Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\EscapeFromTarkov";
@ -37,4 +35,3 @@ namespace SPTInstaller.Aki.Helper
}
}
}
}

View File

@ -1,9 +1,8 @@
using SPTInstaller.Models;
using System.Diagnostics;
using System.IO;
using System.Diagnostics;
using SPTInstaller.Models;
namespace SPTInstaller.Helpers;
namespace SPTInstaller.Aki.Helper
{
public enum PatcherExitCode
{
ProgramClosed = 0,
@ -21,7 +20,8 @@ namespace SPTInstaller.Aki.Helper
{
if (!executable.Exists || !workingDir.Exists)
{
return Result.FromError($"Could not find executable ({executable.Name}) or working directory ({workingDir.Name})");
return Result.FromError(
$"Could not find executable ({executable.Name}) or working directory ({workingDir.Name})");
}
var process = new Process();
@ -58,4 +58,3 @@ namespace SPTInstaller.Aki.Helper
}
}
}
}

View File

@ -1,11 +1,10 @@
using Serilog;
using Splat;
using System;
using System.Collections.Generic;
using System.Linq;
namespace SPTInstaller.Helpers
{
namespace SPTInstaller.Helpers;
/// <summary>
/// A helper class to handle simple service registration to Splat with constructor parameter injection
/// </summary>
@ -126,4 +125,3 @@ namespace SPTInstaller.Helpers
return services;
}
}
}

View File

@ -1,13 +1,11 @@
using SharpCompress.Archives;
using System.Linq;
using SharpCompress.Archives;
using SharpCompress.Archives.Zip;
using SharpCompress.Common;
using SPTInstaller.Models;
using System;
using System.IO;
using System.Linq;
namespace SPTInstaller.Aki.Helper
{
namespace SPTInstaller.Helpers;
public static class ZipHelper
{
public static Result Decompress(FileInfo ArchivePath, DirectoryInfo OutputFolderPath, IProgress<double> progress = null)
@ -20,7 +18,7 @@ namespace SPTInstaller.Aki.Helper
using var archive = ZipArchive.Open(ArchivePath);
var totalEntries = archive.Entries.Where(entry => !entry.IsDirectory);
int processedEntries = 0;
var processedEntries = 0;
foreach (var entry in totalEntries)
{
@ -53,4 +51,3 @@ namespace SPTInstaller.Aki.Helper
}
}
}
}

View File

@ -1,13 +1,10 @@
using Serilog;
using SPTInstaller.Aki.Helper;
using SPTInstaller.Interfaces;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System;
using System.IO;
using System.Threading.Tasks;
using SPTInstaller.Helpers;
namespace SPTInstaller.Installer_Tasks;
namespace SPTInstaller.Installer_Tasks
{
public class CopyClientTask : InstallerTaskBase
{
private InternalData _data;
@ -27,4 +24,3 @@ namespace SPTInstaller.Installer_Tasks
return FileHelper.CopyDirectoryWithProgress(originalGameDirInfo, targetInstallDirInfo, (message, progress) => { SetStatus(null, message, progress, null, true); });
}
}
}

View File

@ -1,15 +1,13 @@
using CG.Web.MegaApiClient;
using Newtonsoft.Json;
using SPTInstaller.Aki.Helper;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using SPTInstaller.Helpers;
namespace SPTInstaller.Installer_Tasks;
namespace SPTInstaller.Installer_Tasks
{
public class DownloadTask : InstallerTaskBase
{
private InternalData _data;
@ -123,4 +121,3 @@ namespace SPTInstaller.Installer_Tasks
return Result.FromSuccess();
}
}
}

View File

@ -1,10 +1,10 @@
using SPTInstaller.Aki.Helper;
using SPTInstaller.Interfaces;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System.Threading.Tasks;
using SPTInstaller.Helpers;
namespace SPTInstaller.Installer_Tasks;
namespace SPTInstaller.Installer_Tasks
{
public class InitializationTask : InstallerTaskBase
{
private InternalData _data;
@ -56,4 +56,3 @@ namespace SPTInstaller.Installer_Tasks
return Result.FromSuccess($"Current Game Version: {_data.OriginalGameVersion}");
}
}
}

View File

@ -1,10 +1,9 @@
using SPTInstaller.Models;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
namespace SPTInstaller.Installer_Tasks.PreChecks
{
namespace SPTInstaller.Installer_Tasks.PreChecks;
public class NetCore6PreCheck : PreCheckBase
{
public NetCore6PreCheck() : base(".Net Core 6 Desktop Runtime", false)
@ -55,4 +54,3 @@ namespace SPTInstaller.Installer_Tasks.PreChecks
return false;
}
}
}

View File

@ -1,10 +1,9 @@
using Microsoft.Win32;
using SPTInstaller.Models;
using System;
using System.Threading.Tasks;
namespace SPTInstaller.Installer_Tasks.PreChecks
{
namespace SPTInstaller.Installer_Tasks.PreChecks;
public class NetFramework472PreCheck : PreCheckBase
{
public NetFramework472PreCheck() : base(".Net Framework 4.7.2", false)
@ -43,4 +42,3 @@ namespace SPTInstaller.Installer_Tasks.PreChecks
}
}
}
}

View File

@ -1,13 +1,12 @@
using Gitea.Api;
using Gitea.Client;
using SPTInstaller.Aki.Helper;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System;
using System.Threading.Tasks;
using SPTInstaller.Helpers;
namespace SPTInstaller.Installer_Tasks;
namespace SPTInstaller.Installer_Tasks
{
public class ReleaseCheckTask : InstallerTaskBase
{
private InternalData _data;
@ -86,4 +85,3 @@ namespace SPTInstaller.Installer_Tasks
}
}
}
}

View File

@ -1,13 +1,11 @@
using SPTInstaller.Aki.Helper;
using SPTInstaller.Interfaces;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using SPTInstaller.Helpers;
namespace SPTInstaller.Installer_Tasks;
namespace SPTInstaller.Installer_Tasks
{
public class SetupClientTask : InstallerTaskBase
{
private InternalData _data;
@ -85,4 +83,3 @@ namespace SPTInstaller.Installer_Tasks
return Result.FromSuccess("SPT is Setup. Happy Playing!");
}
}
}

View File

@ -1,10 +1,9 @@
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System;
using System.Threading.Tasks;
namespace SPTInstaller.Installer_Tasks
{
namespace SPTInstaller.Installer_Tasks;
internal class TestTask : InstallerTaskBase
{
public static TestTask FromRandomName() => new TestTask($"Test Task #{new Random().Next(0, 9999)}");
@ -15,14 +14,14 @@ namespace SPTInstaller.Installer_Tasks
public async override Task<IResult> TaskOperation()
{
int total = 4;
TimeSpan interval = TimeSpan.FromSeconds(1);
var total = 4;
var interval = TimeSpan.FromSeconds(1);
for(int i = 0; i < total; i++)
for(var i = 0; i < total; i++)
{
var count = i + 1;
string progressMessage = $"Running Task: {Name}";
int progress = (int)Math.Floor((double)count / total * 100);
var progressMessage = $"Running Task: {Name}";
var progress = (int)Math.Floor((double)count / total * 100);
SetStatus(progressMessage, $"Details: ({count}/{total})", progress);
@ -32,4 +31,3 @@ namespace SPTInstaller.Installer_Tasks
return Result.FromSuccess();
}
}
}

View File

@ -1,7 +1,7 @@
using System.Threading.Tasks;
namespace SPTInstaller.Interfaces
{
namespace SPTInstaller.Interfaces;
public interface IPreCheck
{
public string Id { get; }
@ -14,4 +14,3 @@ namespace SPTInstaller.Interfaces
public Task<IResult> RunCheck();
}
}

View File

@ -1,7 +1,7 @@
using System.Threading.Tasks;
namespace SPTInstaller.Interfaces
{
namespace SPTInstaller.Interfaces;
public interface IProgressableTask
{
public string Id { get; }
@ -21,4 +21,3 @@ namespace SPTInstaller.Interfaces
public Task<IResult> RunAsync();
}
}

View File

@ -1,14 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SPTInstaller.Interfaces;
namespace SPTInstaller.Interfaces
{
public interface IResult
{
public bool Succeeded { get; }
public string Message { get; }
}
}

View File

@ -1,8 +1,7 @@
namespace SPTInstaller.Models
{
namespace SPTInstaller.Models;
public class DownloadMirror
{
public string Link { get; set; }
public string Hash { get; set; }
}
}

View File

@ -1,14 +1,10 @@
using Avalonia.Threading;
using ReactiveUI;
using ReactiveUI;
using Serilog;
using Splat;
using SPTInstaller.Interfaces;
using System;
using System.Security;
using System.Threading.Tasks;
namespace SPTInstaller.Models
{
namespace SPTInstaller.Models;
public abstract class InstallerTaskBase : ReactiveObject, IProgressableTask
{
private string _id;
@ -180,4 +176,3 @@ namespace SPTInstaller.Models
/// <returns></returns>
public abstract Task<IResult> TaskOperation();
}
}

View File

@ -1,8 +1,7 @@
using System.Collections.Generic;
using System.IO;
namespace SPTInstaller.Models
{
namespace SPTInstaller.Models;
public class InternalData
{
/// <summary>
@ -55,4 +54,3 @@ namespace SPTInstaller.Models
/// </summary>
public bool PatchNeeded { get; set; }
}
}

View File

@ -1,10 +1,9 @@
using ReactiveUI;
using SPTInstaller.Interfaces;
using System;
using System.Threading.Tasks;
namespace SPTInstaller.Models
{
namespace SPTInstaller.Models;
public abstract class PreCheckBase : ReactiveObject, IPreCheck
{
private string _id;
@ -73,4 +72,3 @@ namespace SPTInstaller.Models
public abstract Task<bool> CheckOperation();
}
}

View File

@ -1,7 +1,7 @@
using SPTInstaller.Interfaces;
namespace SPTInstaller.Models
{
namespace SPTInstaller.Models;
public class Result : IResult
{
public bool Succeeded { get; private set; }
@ -14,7 +14,6 @@ namespace SPTInstaller.Models
Succeeded = succeeded;
}
public static Result FromSuccess(string message = "") => new Result(message, true);
public static Result FromError(string message) => new Result(message, false);
}
public static Result FromSuccess(string message = "") => new(message, true);
public static Result FromError(string message) => new(message, false);
}

View File

@ -12,8 +12,8 @@ using SPTInstaller.Models;
using System.Linq;
using System.Reflection;
namespace SPTInstaller
{
namespace SPTInstaller;
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
@ -72,4 +72,3 @@ namespace SPTInstaller
.UseReactiveUI();
}
}
}

View File

@ -1,10 +1,9 @@
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using SPTInstaller.ViewModels;
using System;
namespace SPTInstaller
{
namespace SPTInstaller;
public class ViewLocator : IDataTemplate
{
public IControl Build(object data)
@ -25,4 +24,3 @@ namespace SPTInstaller
return data is ViewModelBase;
}
}
}

View File

@ -4,11 +4,10 @@ using SPTInstaller.Helpers;
using SPTInstaller.Interfaces;
using SPTInstaller.Models;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
namespace SPTInstaller.ViewModels
{
namespace SPTInstaller.ViewModels;
public class InstallViewModel : ViewModelBase
{
private IProgressableTask _currentTask;
@ -18,8 +17,7 @@ namespace SPTInstaller.ViewModels
set => this.RaiseAndSetIfChanged(ref _currentTask, value);
}
public ObservableCollection<InstallerTaskBase> MyTasks { get; set; }
= new ObservableCollection<InstallerTaskBase>(ServiceHelper.GetAll<InstallerTaskBase>());
public ObservableCollection<InstallerTaskBase> MyTasks { get; set; } = new(ServiceHelper.GetAll<InstallerTaskBase>());
public InstallViewModel(IScreen host) : base(host)
{
@ -35,4 +33,3 @@ namespace SPTInstaller.ViewModels
});
}
}
}

View File

@ -1,15 +1,14 @@
using Avalonia;
using ReactiveUI;
using Serilog;
using System;
using System.Reflection;
namespace SPTInstaller.ViewModels
{
namespace SPTInstaller.ViewModels;
public class MainWindowViewModel : ReactiveObject, IActivatableViewModel, IScreen
{
public RoutingState Router { get; } = new RoutingState();
public ViewModelActivator Activator { get; } = new ViewModelActivator();
public RoutingState Router { get; } = new();
public ViewModelActivator Activator { get; } = new();
private string _title;
public string Title
@ -47,4 +46,3 @@ namespace SPTInstaller.ViewModels
}
}
}

View File

@ -4,8 +4,8 @@ using Serilog;
using SPTInstaller.Interfaces;
using System.Windows.Input;
namespace SPTInstaller.ViewModels
{
namespace SPTInstaller.ViewModels;
public class MessageViewModel : ViewModelBase
{
private bool _HasErrors;
@ -44,4 +44,3 @@ namespace SPTInstaller.ViewModels
Log.Error(Message);
}
}
}

View File

@ -1,13 +1,12 @@
using Avalonia.Threading;
using ReactiveUI;
using System.Threading.Tasks;
using System;
namespace SPTInstaller.ViewModels
{
namespace SPTInstaller.ViewModels;
public class ViewModelBase : ReactiveObject, IActivatableViewModel, IRoutableViewModel
{
public ViewModelActivator Activator { get; } = new ViewModelActivator();
public ViewModelActivator Activator { get; } = new();
public string? UrlPathSegment => Guid.NewGuid().ToString().Substring(0, 7);
@ -57,5 +56,3 @@ namespace SPTInstaller.ViewModels
HostScreen = Host;
}
}
}

View File

@ -1,9 +1,8 @@
using Avalonia.Controls;
using Avalonia.ReactiveUI;
using SPTInstaller.ViewModels;
namespace SPTInstaller.Views
{
namespace SPTInstaller.Views;
public partial class InstallView : ReactiveUserControl<InstallViewModel>
{
public InstallView()
@ -11,4 +10,3 @@ namespace SPTInstaller.Views
InitializeComponent();
}
}
}

View File

@ -1,7 +1,7 @@
using Avalonia.Controls;
namespace SPTInstaller.Views
{
namespace SPTInstaller.Views;
public partial class MainWindow : Window
{
public MainWindow()
@ -9,4 +9,3 @@ namespace SPTInstaller.Views
InitializeComponent();
}
}
}

View File

@ -1,9 +1,8 @@
using Avalonia.Controls;
using Avalonia.ReactiveUI;
using SPTInstaller.ViewModels;
namespace SPTInstaller.Views
{
namespace SPTInstaller.Views;
public partial class MessageView : ReactiveUserControl<MessageViewModel>
{
public MessageView()
@ -11,4 +10,3 @@ namespace SPTInstaller.Views
InitializeComponent();
}
}
}

View File

@ -1,8 +1,8 @@
using Avalonia.ReactiveUI;
using SPTInstaller.ViewModels;
namespace SPTInstaller.Views
{
namespace SPTInstaller.Views;
public partial class PreChecksView : ReactiveUserControl<PreChecksViewModel>
{
public PreChecksView()
@ -10,4 +10,3 @@ namespace SPTInstaller.Views
InitializeComponent();
}
}
}