public async Task <AliasUpdateResult> FillAsync(BkTag[] tags) { var re = new AliasUpdateResult { TextAliasType = TextAliasType, }; var updated = false; var tagTexts = tags.Select(x => x.Tag).ToArray(); var tagAlias = await GetAliasAsync(tagTexts); foreach (var tag in tags) { if (tagAlias.TryGetValue(tag.Tag, out var alias)) { tag.TagAlias ??= new Dictionary <TextAliasType, TextAlias>(); tag.TagAlias[TextAliasType] = new TextAlias { Alias = alias, LastUpdatedTime = _clock.UtcNow, TextAliasType = TextAliasType }; updated = true; } } re.IsOk = updated; return(re); }
public async Task <AliasUpdateResult> FillAsync(Bk[] bks) { var re = new AliasUpdateResult { TextAliasType = TextAliasType, }; var titles = bks.Select(x => x.Title).ToArray(); var titleAliasDict = await GetAliasAsync(titles); var updated = false; foreach (var bk in bks) { if (titleAliasDict.TryGetValue(bk.Title, out var newAliasText)) { var alias = new TextAlias { TextAliasType = TextAliasType, LastUpdatedTime = _clock.UtcNow, Alias = newAliasText }; bk.TitleAlias ??= new(); bk.TitleAlias[TextAliasType] = alias; updated = true; } else { _logger.LogDebug("There is not found alias from provider for {Title}", bk.Title); } } re.IsOk = updated; return(re); }