public async Task <IEnumerable <string> > Handle(ParseTagsRequest request, CancellationToken cancellationToken) { var links = new List <string>(); links = request.TagParsers.Aggregate(links, (current, parser) => current.Concat(parser.ParseTags(request.HtmlDocument)).ToList()); return(links); }
public async Task <IEnumerable <string> > Handle(GetLinksRequest request, CancellationToken cancellationToken) { var getParsingOptionsRequest = new GetParsingOptionsRequest(request.TagOptions); var parsingRules = await _mediator.Send(getParsingOptionsRequest, cancellationToken); var parseTagsRequest = new ParseTagsRequest(parsingRules.TagsParsers, request.HtmlDocument); var links = await _mediator.Send(parseTagsRequest, cancellationToken); var filterLinksRequest = new FilterLinksRequest(links, parsingRules); var filteredLinks = (await _mediator.Send(filterLinksRequest, cancellationToken)).ToList(); return(filteredLinks); }