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