mirror of
				https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
				synced 2025-10-30 17:55:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using HaDocument.Models;
 | |
| using HaDocument.Interfaces;
 | |
| using HaDocument.Comparers;
 | |
| using HaXMLReader.Interfaces;
 | |
| using HaLive.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;
 | |
| 
 | |
| namespace HaLive {
 | |
|     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;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } | 
