コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }