Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 4
0
        /// <summary>
        /// Salvataggio di un oggetto "SupportedFileType"
        /// </summary>
        /// <param name="fileType"></param>
        public static ValidationResultInfo SaveFileType(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())
            {
                string codiceAmministrazione = fileType.CodiceAmministrazione;

                provider.BeginTransaction();

                if (fileType.SystemId != 0)
                {
                    // Modifica di un tipo di file
                    commit = UpdateFileType(fileType, provider, resultInfo.BrokenRules);
                }
                else
                {
                    // Inserimento nuovo tipo di file
                    commit = InsertFileType(fileType, provider, resultInfo.BrokenRules);
                }

                // bool removed = false;

                //if (commit)
                //{
                //    bool adminContainsFile = AdminContainsFileType(fileType, provider);

                //    // Verifica se il file è già associato all'amministrazione
                //    if (fileType.FileTypeUsed && !adminContainsFile)
                //    {
                //        // Associazione tipo di file all'amministrazione
                //        commit = AddAdminFileType(fileType, provider, resultInfo.BrokenRules);
                //    }
                //    else if (!fileType.FileTypeUsed && adminContainsFile)
                //    {
                //        // Rimozione associazione tipo di file dall'amministrazione
                //        commit = RemoveAdminFileType(fileType, provider, resultInfo.BrokenRules);
                //        removed = commit;
                //    }
                //}

                if (commit)
                {
                    ValidationResultInfo tmpResult = null;

                    //if (!fileType.FileTypeUsed)
                    //{
                    //    // Rimozione del modello documento
                    //    tmpResult = DocumentModelsManager.RemoveFileTypeDocumentModel(provider, codiceAmministrazione, fileType.FileExtension);
                    //    if (tmpResult.BrokenRules.Count > 0)
                    //        resultInfo.BrokenRules.AddRange(tmpResult.BrokenRules);
                    //}
                    //else if (fileType.ModelFileContent != null)

                    if (fileType.ModelFileContent != null)
                    {
                        if (fileType.MaxFileSize > 0 &&
                            (fileType.MaxFileSize * 1024) < fileType.ModelFileContent.Length)
                        {
                            resultInfo.BrokenRules.Add(new BrokenRule("INVALID_MODEL_FILE_SIZE", "La dimensione del file modello predefinito è maggiore rispetto a quella prevista per il formato", BrokenRule.BrokenRuleLevelEnum.Error));
                        }
                        else
                        {
                            // Upload del documento
                            tmpResult = DocumentModelsManager.SetFileTypeDocumentModel(provider, codiceAmministrazione, fileType.FileExtension, fileType.ModelFileContent);
                            if (tmpResult.BrokenRules.Count > 0)
                            {
                                resultInfo.BrokenRules.AddRange(tmpResult.BrokenRules);
                            }
                        }
                    }

                    commit = (resultInfo.BrokenRules.Count == 0);
                }

                if (commit)
                {
                    //    if (removed)
                    //    {
                    //        // Rimozione del modello documento
                    //        DocumentModelsManager.RemoveFileTypeDocumentModel(provider, codiceAmministrazione, fileType.FileExtension);
                    //    }
                    //    else if (fileType.ModelFileContent != null)
                    //    {
                    //        if (fileType.MaxFileSize > 0 &&
                    //            (fileType.MaxFileSize * 1024) < fileType.ModelFileContent.Length)
                    //        {
                    //            resultInfo.BrokenRules.Add(new BrokenRule("INVALID_MODEL_FILE_SIZE", "La dimensione del file modello predefinito è maggiore rispetto a quella prevista per il formato", BrokenRule.BrokenRuleLevelEnum.Error));
                    //        }
                    //        else
                    //        {
                    //            // Upload del documento
                    //            DocumentModelsManager.SetFileTypeDocumentModel(provider, codiceAmministrazione, fileType.FileExtension, fileType.ModelFileContent);
                    //        }
                    //    }

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

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

            return(resultInfo);
        }