Multi-Platform Package Manager for Stable Diffusion
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
812 B

using StabilityMatrix.Core.Models.Packages;
namespace StabilityMatrix.Core.Helper.Factory;
public class PackageFactory : IPackageFactory
{
/// <summary>
/// Mapping of package.Name to package
/// </summary>
private readonly Dictionary<string, BasePackage> basePackages;
public PackageFactory(IEnumerable<BasePackage> basePackages)
{
this.basePackages = basePackages.ToDictionary(x => x.Name);
}
public IEnumerable<BasePackage> GetAllAvailablePackages()
{
return basePackages.Values;
}
public BasePackage? FindPackageByName(string? packageName)
{
return packageName == null ? null :
basePackages.GetValueOrDefault(packageName);
}
public BasePackage? this[string packageName] => basePackages[packageName];
}