void DataSource_ProcessingAllData(object sender, FileWatcherConnectorDataEventArgs e) { /* * NB: mettere un attributo sulla risorsa di tipo BOOL * con nome DATA_TRANSLATE e valore a 1 per attivare la trasformazione dei dati */ var resource = this._MesManager.ResourcesHandler.GetResource(e.Connector.ResourceId); //discrimino se devo tradurre var mustProcessAttribute = resource.Settings.ResourceAttributes.FirstOrDefault(a => a.Name == "DATA_TRANSLATE"); var mustProcess = mustProcessAttribute != null && mustProcessAttribute.IsValid && !mustProcessAttribute.Disabled && mustProcessAttribute.Type == ValueContainerType.Boolean && mustProcessAttribute.GetConvertedValueToType <bool>(); if (!mustProcess) { return; } //trasformazione (logica in classe separata) var translator = new DataFileTranslator(e.Connector, this._Logger); var translationResult = translator.Translate(e.Data); if (translationResult == null || !translationResult.IsSuccess) { return; } //esito e uscita e.UpdatedData = translationResult.OutputContent; }
/// <summary> /// Gestione evento FileSystemWatcher per modificare tutto il contenuto del file /// in un solo passaggio /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void DataSource_ProcessingAllData(object sender, FileWatcherConnectorDataEventArgs e) { lock (this._SyncObject) { //TODO: trasformazione del testo completo contenuto nel file //e.SourceFileInfo: contiene i dati del file //e.UpdatedData = outputData; //inserisco il frutto dell'elaborazione in UpdatedData } }
/// <summary> /// Gestione evento FileSystemWatcher per modificare il contenuto /// di ogni singola riga /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void DataSource_ProcessingDataLine(object sender, FileWatcherConnectorDataEventArgs e) { //PRIMA VERSIONE PROCEDURA CON ANALISI SINGOLA RIGA //ED ELIMINAZIONE FILE lock (this._SyncObject) { //TODO: trasformazione della singola riga //e.SourceFileInfo: contiene i dati del file //e.UpdatedData = outputDataLine; //inserisco il frutto dell'elaborazione in UpdatedData } }