/// <summary> /// Consente la rimozione di un'amministrazione in DCTM ma non in PITRE /// </summary> /// <param name="amministrazione">Amministrazioni PITRE da rimuovere in DCTM</param> public static bool RimuoviAmministrazione(DocsPaVO.amministrazione.InfoAmministrazione amministrazione) { bool retValue = false; // 1. Connessione al sistema come utente amministratore string userName = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUser(); string password = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUserPwd(); UserLogin.LoginResult loginResult; InfoUtenteAmministratore infoUtente = LoginServices.LoginAdmin(userName, password, out loginResult); if (loginResult == UserLogin.LoginResult.OK) { AmministrazioneManager amministrazioneManager = new AmministrazioneManager(infoUtente); // 2. Rimozione amministrazioni DCTM EsitoOperazione result = amministrazioneManager.Delete(amministrazione); retValue = (result.Codice == RESULT_CODE_OK); if (retValue) { // Rimozione stato migrazione per l'amministrazione StatoMigrazione.Delete(amministrazione); } } return(retValue); }
/// <summary> /// Aggiornamento di un'amministrazione /// </summary> /// <param name="infoUtente"></param> /// <param name="amministrazione"></param> /// <param name="tipiOggetti"></param> /// <returns></returns> internal static void AggiornaAmministrazione(InfoUtenteAmministratore infoUtente, DocsPaVO.amministrazione.InfoAmministrazione amministrazione, TipiOggettiAmministrazione tipiOggetti) { InfoStatoMigrazione statoMigrazione = StatoMigrazione.Get(amministrazione); AmministrazioneManager amministraManager = new AmministrazioneManager(infoUtente); // 1. Verifica amministrazione esistente in DCTM /*if (amministraManager.ContainsAmministrazione(amministrazione.Codice)) * { * List<string> ruoliImportati = null; * * try * { * // 2. Creazione delle utenze dell'amministrazione * if (tipiOggetti.Organigramma) * { * Organigramma.ImportaUtenti(infoUtente, amministrazione); * * // 3. Creazione dei ruoli dell'amministrazione * Organigramma.ImportaRuoli(infoUtente, amministrazione, out ruoliImportati); * * // 4. Associazione degli utenti ai ruoli dell'amministrazione * Organigramma.ImportaAssociazioniUtentiRuoli(infoUtente, amministrazione); * } * /* * if (tipiOggetti.Titolario) * { * // 5. Creazione dei titolari dell'amministrazione * Titolario.ImportaTitolari(infoUtente, amministrazione); * } * * // Imposta lo stato dell'amministrazione come migrata correttamente * statoMigrazione.DatiAmministrazioneMigrati = true; * * // Salva stato della migrazione * StatoMigrazione.Save(statoMigrazione, amministrazione); * } * catch (Exception ex) * { * // Rollback: in caso di errore, viene rimossa l'amministrazione appena inserita * // per mantenere i dati consistenti * Log.GetInstance(amministrazione).Write(string.Format("Si è verificato un errore nella procedura di migrazione l'amministrazione '{0}'.", amministrazione.Codice), false); * * throw ex; * } * } * else * { * // 1a. Errore nella migrazione dell'amministrazione (migrazione interrotta) * throw new ApplicationException(string.Format("Si è verificato un errore nell'aggiornamento dell'amministrazione. Amministrazione con codice {0} non esistente", amministrazione.Codice)); * }*/ }
/// <summary> /// Metodo per l'inizializzazione della DropDown list dei tipi corrispondente /// </summary> private void InitializeCorrType() { this.ddlCorrType.Items.Add(new ListItem("Unità Organizzativa", Tipo.UO.ToString())); // Se sono attivi gli RF, viene aggiunta anche la possibilità di inserire corrispondenti // di tipo RF AmministrazioneManager ammoinistrazioneManager = new AmministrazioneManager(); if (ammoinistrazioneManager.IsEnabledRF(null)) { this.ddlCorrType.Items.Add(new ListItem("Raggruppamento Funzionale", Tipo.RF.ToString())); } }
/// <summary> /// Implementazione della logica del task di migrazione dati /// per una singola amministrazione DocsPa /// </summary> /// <param name="infoUtente"></param> /// <param name="amministrazione"></param> private static void ImportaAmministrazione(InfoUtenteAmministratore infoUtente, InfoAmministrazione amministrazione) { InfoStatoMigrazione statoMigrazione = StatoMigrazione.Get(amministrazione); AmministrazioneManager amministraManager = new AmministrazioneManager(infoUtente); // 1. Creazione dell'amministrazione in DCTM EsitoOperazione result = amministraManager.Insert(amministrazione); if (result.Codice == RESULT_CODE_OK) { Log.GetInstance(amministrazione).Write(string.Format("Creata amministrazione con codice '{0}'", amministrazione.Codice), false); List <string> ruoliImportati = null; try { // 2. Creazione delle utenze dell'amministrazione Organigramma.ImportaUtenti(infoUtente, amministrazione); // 3. Creazione dei ruoli dell'amministrazione //Organigramma.ImportaRuoli(infoUtente, amministrazione, out ruoliImportati); // 4. Associazione degli utenti ai ruoli dell'amministrazione Organigramma.ImportaAssociazioniUtentiRuoli(infoUtente, amministrazione); // 5. Creazione dei titolari dell'amministrazione //Titolario.ImportaTitolari(infoUtente, amministrazione); // Imposta lo stato dell'amministrazione come migrata correttamente statoMigrazione.DatiAmministrazioneMigrati = true; // Salva stato della migrazione StatoMigrazione.Save(statoMigrazione, amministrazione); } catch (Exception ex) { // Rollback: in caso di errore, viene rimossa l'amministrazione appena inserita // per mantenere i dati consistenti EsitoOperazione rollback = null; /* * if (ruoliImportati != null) * rollback = amministraManager.Delete(amministrazione, ruoliImportati.ToArray()); * else * rollback = amministraManager.Delete(amministrazione); */ if (rollback.Codice != RESULT_CODE_OK) { Log.GetInstance(amministrazione).Write(string.Format("Errore nel Rollback: {0}", rollback.Descrizione), false); } else { Log.GetInstance(amministrazione).Write(string.Format("Si è verificato un errore nella procedura di migrazione l'amministrazione '{0}'. Le operazioni finora effettuate sono state annullate.", amministrazione.Codice), false); } throw ex; } } else { // 1a. Errore nella migrazione dell'amministrazione (migrazione interrotta) throw new ApplicationException(string.Format("Si è verificato un errore nell'inserimento dell'amministrazione. Codice: {0} - Descrizione: {1}", result.Codice, result.Descrizione)); } }