Files
rssotto-csharp-client/ModVersionChecker/ui/forms/FormFactory.cs
Jose Conde 4c76f04d0e refactors
2025-09-30 15:57:56 +02:00

70 lines
2.9 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using ModVersionChecker.managers.interfaces;
using ModVersionChecker.service.interfaces;
namespace ModVersionChecker.ui.forms
{
public class FormFactory : IFormFactory
{
private readonly IServiceProvider _serviceProvider;
public FormFactory(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
}
public AppDetailsForm CreateAppDetailsForm(App? app, bool isEditable, EventHandler<string>? onAppSaved)
{
var apiService = _serviceProvider.GetRequiredService<IApiService>();
var appService= _serviceProvider.GetRequiredService<IAppService>();
var form = new AppDetailsForm(apiService, appService);
if (onAppSaved != null)
{
form.OnAppAdded += onAppSaved;
}
return form;
}
public GlobalConfigForm CreateGlobalConfigForm()
{
var configManager = _serviceProvider.GetRequiredService<IConfigRepository>();
return new GlobalConfigForm(configManager);
}
public TypeConfigForm CreateTypeConfigForm()
{
var typeManager = _serviceProvider.GetRequiredService<ITypeConfigRepository>();
var apiService = _serviceProvider.GetRequiredService<IApiService>();
var configManager = _serviceProvider.GetRequiredService<IConfigRepository>();
return new TypeConfigForm(typeManager, apiService, configManager);
}
//public SourcesConfigForm CreateSourcesConfigForm(EventHandler<string>? onSourcesChanged)
//{
// var sourcesDefManager = _serviceProvider.GetRequiredService<ISourcesDefManager>();
// var formFactory = _serviceProvider.GetRequiredService<IFormFactory>();
// var form = new SourcesConfigForm(formFactory, sourcesDefManager);
// if (onSourcesChanged != null)
// {
// form.OnSourcesChanged += onSourcesChanged;
// }
// return form;
//}
//public SourceDetailForm CreateSourceDetailForm(SourceDef? sourceDef, EventHandler<string>? onSourceChanged)
//{
// var sourcesDefManager = _serviceProvider.GetRequiredService<ISourcesDefManager>();
// var checkerTypesDefManager = _serviceProvider.GetRequiredService<ICheckerTypesDefManager>();
// var formFactory = _serviceProvider.GetRequiredService<IFormFactory>();
// var form = new SourceDetailForm(formFactory, sourcesDefManager);
// form.SourceDef = sourceDef;
// if (onSourceChanged != null)
// {
// form.UpdateFields();
// form.OnSourceChanged += onSourceChanged;
// }
// return form;
//}
}
}