mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 01:05:32 +00:00
77 lines
1.9 KiB
C#
77 lines
1.9 KiB
C#
namespace HaWeb;
|
|
using HaDocument.Models;
|
|
using HaDocument.Interfaces;
|
|
using HaDocument.Comparers;
|
|
using HaXMLReader.Interfaces;
|
|
using HaWeb.Models;
|
|
using HaXMLReader.EvArgs;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Immutable;
|
|
using System.Threading.Tasks;
|
|
using System.Linq;
|
|
using System;
|
|
|
|
internal class DocumentSearch {
|
|
internal DocumentSearchResult _searchResult { get; }
|
|
private IReader _reader { get; }
|
|
private string _search { get; }
|
|
|
|
internal DocumentSearch(DocumentSearchResult res, IReader reader, string search) {
|
|
_searchResult = res;
|
|
_reader = reader;
|
|
_search = search;
|
|
_pg = "";
|
|
}
|
|
|
|
internal DocumentSearchResult Act() {
|
|
_reader.Text += OnText;
|
|
_reader.SingleTag += OnSTag;
|
|
_reader.Read();
|
|
return _searchResult;
|
|
}
|
|
|
|
internal void OnText(object _, Text text) {
|
|
if (text.Value.ToLower().Contains(_search.ToLower())) {
|
|
_searchResult.Results.Add(new DocumentResult(text.Value, _pg, _ln));
|
|
}
|
|
}
|
|
|
|
private string _pg;
|
|
private string _ln;
|
|
|
|
internal void OnSTag(object _, Tag tag) {
|
|
if (tag.Name == "page")
|
|
_pg = tag["index"];
|
|
else if (tag.Name == "line")
|
|
_ln = tag["index"];
|
|
}
|
|
}
|
|
|
|
|
|
internal class RegisterSearch {
|
|
internal Comment _searchResult { get; }
|
|
private IReader _reader { get; }
|
|
private string _search { get; }
|
|
private bool found;
|
|
|
|
internal RegisterSearch(Comment res, IReader reader, string search) {
|
|
_searchResult = res;
|
|
_reader = reader;
|
|
_search = search;
|
|
found = false;
|
|
}
|
|
|
|
internal bool Act() {
|
|
_reader.Text += OnText;
|
|
_reader.Read();
|
|
return found;
|
|
}
|
|
|
|
internal void OnText(object _, Text text) {
|
|
if (text.Value.ToLower().Contains(_search.ToLower())) {
|
|
found = true;
|
|
}
|
|
}
|
|
}
|