/// <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); }
/// <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); }
/// <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); }
/// <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); }