public void SelectRanges(IReadOnlyList<Match> matches, DocumentModel model, Format format)
{
var modifiedRanges = new List<IRange>(matches.Select<Match, IRange>(x => model.OriginalToModifiedRange(x.Range)));
var currentExtraction = Extract(format);
var lookup = new Lookup(model.Content);
var searchResult = lookup.Search(currentExtraction, modifiedRanges);
if(searchResult.Count == 0)
{
throw new MatchesNotFoundException("Lookup returned an empty list. Maybe source document was change by user?", matches, null);
}
var rangeWithTag = new Range(searchResult[0].Start, searchResult[searchResult.Count - 1].End);
IRange range = ToRawRange(format, currentExtraction, rangeWithTag, false);
SelectRawRange(range, format);
}