protected override bool NeedsRefreshBasedOnCompareDate(BaseItem item, BaseProviderInfo providerInfo) { var savePath = GameXmlSaver.GetGameSavePath(item); var xml = item.ResolveArgs.GetMetaFileByPath(savePath) ?? new FileInfo(savePath); if (!xml.Exists) { return(false); } return(_fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed); }
/// <summary> /// /// </summary> /// <param name="game"></param> /// <param name="cancellationToken"></param> /// <returns></returns> private async Task <bool> Fetch(Game game, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var metaFile = GameXmlSaver.GetGameSavePath(game); if (File.Exists(metaFile)) { await XmlParsingResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); try { new GameXmlParser(Logger).Fetch(game, metaFile, cancellationToken); } finally { XmlParsingResourcePool.Release(); } } SetLastRefreshed(game, DateTime.UtcNow); return(true); }