/// <summary> /// Permette di inserire tutte le informazioni di lega all'interno dell'oggetto predisposto per contenere tutti i valori per le informazioni di lega /// in lettura corrente e per il foglio in analisi /// Si tratta della prima tipologia di foglio per il primo formato excel disponibile, ovvero quello di lettura delle leghe /// In particolare vengono anche restituiti in output la lista degli errori e warnings per l'iterazione corrente, sui quali devono essere configurati eventualmente dei logs appositi /// </summary> /// <param name="currentFoglioExcel"></param> /// <param name="emptyLegheInfo"></param> /// <param name="filledLegheInfo"></param> /// <param name="listaWarnings_LetturaFoglio"></param> /// <param name="listaErrori_LetturaFoglio"></param> /// <returns></returns> public static EsitoRecuperoInformazioniFoglio ReadLegheInfo(ExcelWorksheet currentFoglioExcel, Excel_AlloyInfo_Sheet emptyLegheInfo, out Excel_AlloyInfo_Sheet filledLegheInfo) { // inizializzazione foglio excel corrente _currentFoglioExcel = currentFoglioExcel; // inizializzazione istanza foglio corrente _currentEmptyPropertiesSheetInstance = emptyLegheInfo; // inizializzazione dei messaggi di errori warnings che si trovaranno con iterazione corrente _errorMessages_CurrentInstance = String.Empty; _warningMessages_CurrentInstance = String.Empty; // indicazione di passaggio di almeno una validazione bool atLeastAValidation = false; foreach (Excel_PropertiesContainer currentPropertiesLeghe in _currentEmptyPropertiesSheetInstance.AlloyPropertiesInstances) { // passaggio di almeno una validazione su foglio corrente if (ReadPropertiesInfo(currentPropertiesLeghe)) { atLeastAValidation = true; } } // messaggi di errore / warnings per istanza corrente _currentEmptyPropertiesSheetInstance.ErrorMessageSheet += _errorMessages_CurrentInstance; _currentEmptyPropertiesSheetInstance.WarningMessageSheet += _warningMessages_CurrentInstance; filledLegheInfo = _currentEmptyPropertiesSheetInstance; if (atLeastAValidation) { if (_warningMessages_CurrentInstance != String.Empty) { return(EsitoRecuperoInformazioniFoglio.RecuperoConWarnings); } return(EsitoRecuperoInformazioniFoglio.RecuperoCorretto); } return(EsitoRecuperoInformazioniFoglio.RecuperoConErrori); }
/// <summary> /// Permette il recupero di tutte le informazioni per leghe e concentrazioni all'interno dell'oggetto predisposto per contenenere tutti i vlaori per le informazioni di /// leghe e concentrazioni in lettura corrente e per il foglio in analisi /// </summary> /// <param name="currentFoglioExcel"></param> /// <param name="emptyInfo"></param> /// <param name="filledInfo"></param> /// <param name="possibleReadErrors"></param> /// <param name="possibleReadWarnings"></param> /// <returns></returns> public static EsitoRecuperoInformazioniFoglio ReadInfoFormat2(ExcelWorksheet currentFoglioExcel, Excel_AlloyInfo_Sheet emptyInfo, out Excel_AlloyInfo_Sheet filledInfo) { // inizializzazione foglio excel corrente _currentFoglioExcel = currentFoglioExcel; // inizializzazione istanza foglio corrente _currentEmptyPropertiesSheetInstance = emptyInfo; // inizializzazione dei messaggi di errori warnings che si trovaranno con iterazione corrente _errorMessages_CurrentInstance = String.Empty; _warningMessages_CurrentInstance = String.Empty; // indicazione di passaggio di almeno una validazione bool atLeastAValidationOnLeghe = false; foreach (Excel_PropertiesContainer currentPropertiesLeghe in _currentEmptyPropertiesSheetInstance.AlloyPropertiesInstances) { // passaggio di almeno una validazione su foglio corrente if (ReadPropertiesInfo(currentPropertiesLeghe)) { atLeastAValidationOnLeghe = true; } } // indicazione di passaggio di almeno una validazione bool atLeastAValidationOnConcentrations = false; foreach (Excel_PropertiesContainer currentPropertiesConcentrations in _currentEmptyPropertiesSheetInstance.ConcentrationsPropertiesInstances) { // passaggio di almeno una validazione su foglio corrente if (ReadPropertiesInfo(currentPropertiesConcentrations)) { atLeastAValidationOnConcentrations = true; } } // messaggi di errore / warnings per istanza corrente _currentEmptyPropertiesSheetInstance.ErrorMessageSheet += _errorMessages_CurrentInstance; _currentEmptyPropertiesSheetInstance.WarningMessageSheet += _warningMessages_CurrentInstance; // bool validationOnLegheConcentrations = false; // ulteriore check fatto su elementi di lega e concentrazioni if (atLeastAValidationOnLeghe && atLeastAValidationOnConcentrations) { // se per ogni proprieta di lega non c'è validazione, allora non posso continuare if (_currentEmptyPropertiesSheetInstance.AlloyPropertiesInstances.Where(x => x.ValidationContent_STEP1_Recognition == true).Count() > 0) { foreach (Excel_PropertiesContainer currentPropertiesLeghe in _currentEmptyPropertiesSheetInstance.AlloyPropertiesInstances) { if (_currentEmptyPropertiesSheetInstance.ConcentrationsPropertiesInstances.Where(x => x.StartingRowIndex == currentPropertiesLeghe.StartingRowIndex ).Count() > 0 && currentPropertiesLeghe.ValidationContent_STEP1_Recognition ) { currentPropertiesLeghe.ValidatedAssociation_STEP1_Recognition = true; } } // controllo se ho avuto una associazione almeno per un elemento di lega if (_currentEmptyPropertiesSheetInstance.AlloyPropertiesInstances.Where(x => x.ValidatedAssociation_STEP1_Recognition == true).Count() > 0) { validationOnLegheConcentrations = true; } } } filledInfo = _currentEmptyPropertiesSheetInstance; // se ho passato anche l'ultima associazione allora posso ritornare senza errori if (validationOnLegheConcentrations) { if (_warningMessages_CurrentInstance != String.Empty) { return(EsitoRecuperoInformazioniFoglio.RecuperoConWarnings); } return(EsitoRecuperoInformazioniFoglio.RecuperoCorretto); } return(EsitoRecuperoInformazioniFoglio.RecuperoConErrori); }