refactors

This commit is contained in:
Jose Conde
2025-09-30 15:57:56 +02:00
parent 5e16f781b4
commit 4c76f04d0e
31 changed files with 403 additions and 293 deletions

View File

@@ -1,7 +1,6 @@
using ModVersionChecker.enums;
using ModVersionChecker.managers.interfaces;
using ModVersionChecker.model;
using ModVersionChecker.repository.api.dto;
using ModVersionChecker.service.interfaces;
using ModVersionChecker.utils;
@@ -10,15 +9,13 @@ namespace ModVersionChecker.ui.forms
{
public class MainForm : Form
{
private readonly IAppsManager _appsManager;
private readonly IStateService _stateService;
private readonly IFormFactory _formFactory;
private readonly IFlightSimsManager _fsManager;
private readonly IApiService _apiService;
private readonly IVersionService _versionService;
private readonly IAppService _appService;
private readonly TableLayoutPanel _mainLayout;
private readonly Config _globalConfig;
private List<App> _apps = new List<App>();
private ListView _listView;
private ImageList _statusImageList = new ImageList();
@@ -26,27 +23,20 @@ namespace ModVersionChecker.ui.forms
public event EventHandler<string> OnRecheck;
private EventHandler<string> onAppSavedHandler;
private MenuStrip _menuStrip;
private List<TypeResponse> _fsMods;
private readonly Dictionary<string, TextBox> _fsModPathTextBoxes = new Dictionary<string, TextBox>();
private List<SourceResponse> _sources = new List<SourceResponse>();
private List<TypeResponse> _typesDef = new List<TypeResponse>();
public MainForm(
IConfigManager configManager,
IAppsManager appsManager,
IStateService stateService,
IAppService appService,
IConfigRepository configManager,
IFormFactory formFactory,
IFlightSimsManager fsManager,
IApiService apiService,
ITypeManager typeConfigManager,
IVersionService versionService)
IApiService apiService
)
{
_appsManager = appsManager ?? throw new ArgumentNullException(nameof(appsManager));
_formFactory = formFactory ?? throw new ArgumentNullException(nameof(formFactory));
_fsManager = fsManager ?? throw new ArgumentNullException(nameof(fsManager));
_apiService = apiService ?? throw new ArgumentNullException(nameof(apiService));
_versionService = versionService ?? throw new ArgumentNullException(nameof(versionService));
_fsMods = _fsManager.Load();
_appService = appService ?? throw new ArgumentNullException(nameof(appService));
_stateService = stateService ?? throw new ArgumentNullException(nameof(stateService));
_statusImageList.Images.Add("none", new Icon("Resources/ok-icon.ico"));
_statusImageList.Images.Add("update", new Icon("Resources/up-icon.ico"));
@@ -74,6 +64,7 @@ namespace ModVersionChecker.ui.forms
var app = form.SelectedApp;
UpdateCurrentVersion(app);
_stateService.UpdateApps();
UpdateListView();
OnConfigChanged?.Invoke(this, EventArgs.Empty);
};
@@ -81,6 +72,22 @@ namespace ModVersionChecker.ui.forms
this.Load += MainForm_LoadAsync;
}
private async void MainForm_LoadAsync(object? sender, EventArgs e)
{
await _apiService.AuthenticateAsync("user", "user");
var apps = await _appService.GetAndUpdateCurrentApps();
var sources = await _apiService.GetSources();
var types = await _apiService.GetTypes();
_stateService.SetApps(apps);
_stateService.SetSources(sources);
_stateService.SetTypes(types);
_stateService.SetConfig(_globalConfig);
UpdateListView();
}
private void UpdateCurrentVersion(App app)
{
TypeConfig? typeConfig = _globalConfig.Types.FirstOrDefault(tc => app.Type == tc.ShortName);
@@ -92,21 +99,12 @@ namespace ModVersionChecker.ui.forms
app.CurrentVersion = versionInDisk;
app.LastCheckedAt = TimeUtils.GetUnixTimeMillis(DateTime.Now);
_versionService.CheckApp(app);
_appService.CheckAppStatus(app);
_appService.UpdateApp(app);
}
}
private async void MainForm_LoadAsync(object? sender, EventArgs e)
{
await _apiService.AuthenticateAsync("user", "user");
_apps = await _apiService.GetAppsByIds([]);
_sources = await _apiService.GetSources();
_typesDef = await _apiService.GetTypes();
UpdateListView();
}
private TableLayoutPanel GetMainLayout()
{
// Initialize the main layout panel
@@ -197,10 +195,10 @@ namespace ModVersionChecker.ui.forms
};
// Add recheck logic here
recheckButton.Click += async (s, e) =>
recheckButton.Click += (s, e) =>
{
recheckButton.Enabled = false;
await _versionService.CheckAllApps();
_appService.CheckAllApps();
UpdateListView();
//OnRecheck.Invoke(this, "User initiated recheck from ConfigForm");
recheckButton.Enabled = true;
@@ -212,7 +210,7 @@ namespace ModVersionChecker.ui.forms
public void UpdateListView()
{
_apps = _appsManager.Load();
var _apps = _stateService.GetApps();
_listView.Items.Clear();
foreach (var app in _apps)
{
@@ -252,10 +250,13 @@ namespace ModVersionChecker.ui.forms
private void DeleteApp(App app)
{
var result = MessageBox.Show($"Are you sure you want to delete '{app?.Name ?? ""}'?", "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (app == null) return;
var result = MessageBox.Show($"Are you sure you want to delete '{app.Name ?? ""}'?", "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
_appsManager.Delete((_listView.SelectedItems[0].Tag as App).Id);
_appService.DeleteApp((_listView.SelectedItems[0].Tag as App));
_stateService.UpdateApps();
UpdateListView();
OnConfigChanged?.Invoke(this, EventArgs.Empty);
}