예제 #1
0
        /// <summary>
        /// Inizializzazione formati di file predefiniti per l'amministrazione richiesta
        /// </summary>
        /// <param name="idAmministrazione"></param>
        public static ValidationResultInfo InitializeDefaultFileTypes(int idAmministrazione)
        {
            // Verifica se la funzionalità di gestione formati file è abilitata o meno
            CheckServiceEnabled();

            ValidationResultInfo resultInfo = new ValidationResultInfo();

            try
            {
                // 1. reperimento modelli documento per l'amministrazione
                SupportedFileType[] fileTypes = GetFileTypes(idAmministrazione);

                // 2. rimozione di eventuali modelli documento per l'amministrazione
                foreach (SupportedFileType fileType in fileTypes)
                {
                    DocumentModelsManager.RemoveFileTypeDocumentModel(fileType.IdAmministrazione, fileType.FileExtension);
                }

                // 3. reperimento formati predefiniti
                SupportedFileType[] defaultFileTypes = GetDefaultFileTypes();

                using (DBProvider provider = new DBProvider())
                {
                    provider.BeginTransaction();

                    foreach (SupportedFileType fileType in defaultFileTypes)
                    {
                        // Impostazione dei dati dell'amministrazione
                        fileType.IdAmministrazione     = idAmministrazione;
                        fileType.CodiceAmministrazione = GetCodiceAmministrazione(idAmministrazione, provider);

                        // 4. inserimento dei formati predefiniti
                        InsertFileType(fileType, provider, resultInfo.BrokenRules);
                    }
                    if (resultInfo.BrokenRules.Count == 0)
                    {
                        provider.CommitTransaction();
                    }
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format("Errore nell'inizializzazione dei formati predefiniti: {0}", ex.Message);
                logger.Debug(errorMessage);

                resultInfo.BrokenRules.Add(new BrokenRule("ERROR_INITIALIZE_DEFAULT_TYPES", errorMessage));
            }

            resultInfo.Value = (resultInfo.BrokenRules.Count == 0);

            return(resultInfo);
        }
예제 #2
0
        /// <summary>
        /// Rimozione di un oggetto "SupportedFileType"
        /// </summary>
        /// <param name="fileType"></param>
        public static ValidationResultInfo RemoveFileType(ref SupportedFileType fileType)
        {
            // Verifica se la funzionalità di gestione formati file è abilitata o meno
            CheckServiceEnabled();

            ValidationResultInfo resultInfo = new ValidationResultInfo();

            bool commit = false;

            using (DBProvider provider = new DBProvider())
            {
                provider.BeginTransaction();

                if (ContainsFileType(fileType, provider))
                {
                    // Rimozione del modello documento
                    ValidationResultInfo removeResultInfo = DocumentModelsManager.RemoveFileTypeDocumentModel(provider, fileType.CodiceAmministrazione, fileType.FileExtension);
                    commit = removeResultInfo.Value;
                    if (!commit)
                    {
                        resultInfo.BrokenRules.AddRange(removeResultInfo.BrokenRules);
                    }
                    removeResultInfo = null;
                }
                else
                {
                    // Continua con la rimozione
                    commit = true;
                }

                if (commit)
                {
                    // Rimozione del tipo di file, solamente se non più utilizzato da alcuna amministrazione
                    commit = RemoveFileType(fileType, provider, resultInfo.BrokenRules);
                }

                if (commit)
                {
                    provider.CommitTransaction();
                }
                else
                {
                    provider.RollbackTransaction();
                }
            }

            return(resultInfo);
        }
예제 #3
0
        /// <summary>
        /// Rimozione di tutti i formati di file per l'amministrazione richiesta
        /// </summary>
        /// <param name="idAmministrazione"></param>
        /// <returns></returns>
        public static ValidationResultInfo ClearFileTypes(int idAmministrazione)
        {
            // Verifica se la funzionalità di gestione formati file è abilitata o meno
            CheckServiceEnabled();

            ValidationResultInfo resultInfo = new ValidationResultInfo();

            try
            {
                // 1. reperimento modelli documento per l'amministrazione
                SupportedFileType[] fileTypes = GetFileTypes(idAmministrazione);

                using (DBProvider provider = new DBProvider())
                {
                    foreach (SupportedFileType fileType in fileTypes)
                    {
                        // 2. rimozione di eventuali modelli documento per l'amministrazione
                        DocumentModelsManager.RemoveFileTypeDocumentModel(fileType.IdAmministrazione, fileType.FileExtension);

                        // 3. rimozione del formato file
                        RemoveFileType(fileType, provider, resultInfo.BrokenRules);
                    }
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format("Errore nella rimozione dei formati documento: {0}", ex.Message);
                logger.Debug(errorMessage);

                resultInfo.BrokenRules.Add(new BrokenRule("ERROR_CLEAR_TYPES", errorMessage));
            }

            resultInfo.Value = (resultInfo.BrokenRules.Count == 0);

            return(resultInfo);
        }