public void Load(string directoryPath)
{
lock (_thisLock)
{
_settings.Load(directoryPath);
foreach (var item in _settings.DownloadItems)
{
if (item.State != DownloadState.Completed)
{
_cacheManager.Lock(item.Seed.Metadata.Key);
foreach (var index in item.Indexes)
{
foreach (var group in index.Groups)
{
foreach (var key in group.Keys)
{
_cacheManager.Lock(key);
}
}
}
}
}
foreach (var item in _settings.DownloadItems.ToArray())
{
try
{
this.CheckState(item.Index);
}
catch (Exception)
{
_settings.DownloadItems.Remove(item);
}
}
_idManager.Clear();
foreach (var item in _settings.DownloadItems)
{
_idManager.Add(item);
}
}
}