using Microsoft.Extensions.DependencyInjection;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace FastGithub.Scanner
{
///
/// 域名与ip关系工厂
///
[Service(ServiceLifetime.Singleton)]
sealed class DomainAddressFacotry
{
private readonly IEnumerable providers;
///
/// 域名与ip关系工厂
///
///
public DomainAddressFacotry(IEnumerable providers)
{
this.providers = providers;
}
///
/// 创建域名与ip的关系
///
///
public async Task> CreateDomainAddressesAsync()
{
var hashSet = new HashSet();
foreach (var provider in this.providers)
{
var domainAddresses = await provider.CreateDomainAddressesAsync();
foreach (var item in domainAddresses)
{
hashSet.Add(item);
}
}
return hashSet;
}
}
}