using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MP.FileData { public enum SearchMode { /// /// Ricerca occorrenze di una RegExp dentro il contenuto del file /// StringOnFile, /// /// Cerca da path relativo + nome file /// PathAndName, /// /// Ricerca di espliciti TAG nel file /// TagListed } public class SearchRules { #region Public Properties /// /// Estensioni file esclusi /// public List ExcludedFileExt { get; set; } = new List(); /// /// Pattern esclusione Tags (stop-words) /// public List ExcludedTags { get; set; } = new List(); /// /// Pattern in formato RegExp /// public Dictionary FileNameExtReplace { get; set; } = new Dictionary(); /// /// Quantità massima di caratteri da analizzare, 0 = tutti /// public int MaxChar2Search { get; set; } = 100; /// /// Modalità ricerca /// public SearchMode Mode { get; set; } = SearchMode.StringOnFile; /// /// Nome della regola di ricerca /// public string Name { get; set; } = "ND"; /// /// Configurazione opzionale x rimozione filename da output finali /// public bool OutExcludeFileName { get; set; } = true; /// /// Replace in uscita per "bonificare" il tag /// public Dictionary OutReplace { get; set; } = new Dictionary(); /// /// Pattern in formato RegExp /// public string RegExPattern { get; set; } = ""; /// /// Configurazione opzionale x sostituzione placeholder {{fileName}} in RegExp con il VERO nome file /// public bool RegExRepFileName { get; set; } = true; /// /// Configurazione opzionale x sostituzione carriage return --> spazi /// public bool ReplaceCR { get; set; } = true; /// /// Tag da collezionare, come elenco di stringhe /// es: {"Customer", "Model"} /// selezionerà /// Customer=Steamware /// MODEL=DEMO_SIMULATOR /// public List Tag2Collect { get; set; } = new List(); /// /// Configurazione opzionale x escludere files da regexp su filename /// public bool ExclFileEnabled { get; set; } = false; /// /// Pattern in formato RegExp x esclusione file da nome /// public string ExclFileRegExPattern { get; set; } = ""; #endregion Public Properties } }