public override IEnumerable<LocalizedText> Get()
{
var texts = new Dictionary<string, PrioritizedText>();
if (Sources != null)
{
foreach (var source in Sources)
{
foreach (var text in source.Source.Get())
{
var key = text.UniqueKey;
PrioritizedText current;
if (!texts.TryGetValue(key, out current)
|| (source.Priority > current.Priority && text.Quality >= current.Text.Quality) ) //Prefer texts with better quality
{
//Use this text if it's new or has higher priority than the current
texts[key] = new PrioritizedText { Text = text, Priority = source.Priority };
}
}
}
}
return texts.Values.Select(x=>x.Text);
}