/// <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> /// Task di aggiornamento di tutti gli oggetti di un'amministrazione /// </summary> /// <param name="amministrazione"></param> /// <param name="tipiOggetti"></param> /// <returns></returns> public static bool AggiornaAmministrazione(DocsPaVO.amministrazione.InfoAmministrazione amministrazione, TipiOggettiAmministrazione tipiOggetti) { bool retValue = false; try { // 1. Connessione al sistema come utente amministratore string userName = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUser(); string password = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUserPwd(); Log.GetInstance(amministrazione).Write(string.Format("Connessione al sistema come utente amministratore. UserName: '******' - Password: '******'", userName, password), false); UserLogin.LoginResult loginResult; InfoUtenteAmministratore infoUtente = LoginServices.LoginAdmin(userName, password, out loginResult); if (loginResult == UserLogin.LoginResult.OK) { // 2. Migrazione dati singola amministrazione AggiornaAmministrazione(infoUtente, amministrazione, tipiOggetti); Log.GetInstance(amministrazione).Write("Procedura di migrazione completata con successo", false); } else { // 1a. Utente non autenticato throw new ApplicationException( string.Format("Errore nell'autenticazione dell'utente '{0}'. Esito:{1}", userName, loginResult.ToString())); } retValue = true; } catch (Exception ex) { // Migrazione annullata Log.GetInstance(amministrazione).Write(ex.Message, true); retValue = false; } finally { Log.GetInstance(amministrazione).Flush(); } return(retValue); }
/// <summary> /// /// </summary> /// <param name="amministrazione"></param> /// <param name="fascicoli"></param> public static void ImportaFascicoliSelezionati(DocsPaVO.amministrazione.InfoAmministrazione amministrazione, Migrazione.InfoFascicoloMigrazione[] fascicoli) { try { // 1. Connessione al sistema come utente amministratore string userName = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUser(); string password = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUserPwd(); Log.GetInstance(amministrazione).Write(string.Format("Connessione al sistema come utente amministratore. UserName: '******' - Password: '******'", userName, password), false); UserLogin.LoginResult loginResult; InfoUtenteAmministratore infoUtente = LoginServices.LoginAdmin(userName, password, out loginResult); if (loginResult == UserLogin.LoginResult.OK) { // 2. Migrazione di tutti i fascicoli in amministrazione Fascicolo.ImportaFascicoliSelezionati(infoUtente, amministrazione, fascicoli); } else { // 1a. Utente non autenticato throw new ApplicationException( string.Format("Errore nell'autenticazione dell'utente '{0}'. Esito:{1}", userName, loginResult.ToString())); } } catch (Exception ex) { // Migrazione annullata Log.GetInstance(amministrazione).Write(ex.Message, true); } finally { Log.GetInstance(amministrazione).Flush(); } }
/// <summary> /// Aggiornamento delle associazioni fascicoli / documenti /// </summary> /// <param name="amministrazione"></param> /// <param name="fascicoli"></param> public static void AggiornaAssociazioniFascicoliSelezionatiDocumenti(DocsPaVO.amministrazione.InfoAmministrazione amministrazione, Migrazione.InfoFascicoloMigrazione[] fascicoli) { try { // 1. Connessione al sistema come utente amministratore string userName = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUser(); string password = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUserPwd(); Log.GetInstance(amministrazione).Write(string.Format("Connessione al sistema come utente amministratore. UserName: '******' - Password: '******'", userName, password), false); UserLogin.LoginResult loginResult; InfoUtenteAmministratore infoUtente = LoginServices.LoginAdmin(userName, password, out loginResult); if (loginResult == UserLogin.LoginResult.OK) { // Viene assegnato all'infoutente l'id dell'amministrazione fornita come parametro // per fare in modo che l'utente che esegue la migrazione si impersonifichi // come utente dell'amministrazione string idAmm = infoUtente.idAmministrazione; infoUtente.idAmministrazione = amministrazione.IDAmm; ProjectManager projectManager = new ProjectManager(infoUtente); int index = 1; foreach (Migrazione.InfoFascicoloMigrazione item in fascicoli) { if (_interrompiMigrazione) { _interrompiMigrazione = false; Log.GetInstance(amministrazione).Write(string.Format("Aggiornamento associazione fascicoli documenti al fascicolo {0} di {1}", index.ToString(), fascicoli.Length), false); break; } infoUtente.idGruppo = DocsPaDocumentale_DOCUMENTUM.DocsPaServices.DocsPaQueryHelper.getRuoloCreatore(item.Id).idGruppo; DocsPaVO.fascicolazione.Fascicolo fascicolo = GetFascicolo(item.Id, infoUtente); // 2. Aggiornamento fascicolazioni del fascicolo AggiornaAssociazioniFascicoliDocumenti(infoUtente, amministrazione, fascicolo, projectManager); index++; } infoUtente.idAmministrazione = idAmm; } else { // 1a. Utente non autenticato throw new ApplicationException( string.Format("Errore nell'autenticazione dell'utente '{0}'. Esito:{1}", userName, loginResult.ToString())); } } catch (Exception ex) { // Migrazione annullata Log.GetInstance(amministrazione).Write(ex.Message, true); } finally { Log.GetInstance(amministrazione).Flush(); } }
/// <summary> /// Aggiornamento delle associazioni fascicoli / documenti /// </summary> /// <param name="amministrazione"></param> /// <param name="opzioniMigrazione"></param> public static void AggiornaAssociazioniFascicoliDocumenti(DocsPaVO.amministrazione.InfoAmministrazione amministrazione, OpzioniMigrazioneFascicolo opzioniMigrazione) { try { // 1. Connessione al sistema come utente amministratore string userName = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUser(); string password = DocsPaDocumentale_DOCUMENTUM.DctmServices.DctmConfigurations.GetDocumentumSuperUserPwd(); Log.GetInstance(amministrazione).Write(string.Format("Connessione al sistema come utente amministratore. UserName: '******' - Password: '******'", userName, password), false); UserLogin.LoginResult loginResult; InfoUtenteAmministratore infoUtente = LoginServices.LoginAdmin(userName, password, out loginResult); if (loginResult == UserLogin.LoginResult.OK) { // Viene assegnato all'infoutente l'id dell'amministrazione fornita come parametro // per fare in modo che l'utente che esegue la migrazione si impersonifichi // come utente dell'amministrazione string idAmm = infoUtente.idAmministrazione; infoUtente.idAmministrazione = amministrazione.IDAmm; ProjectManager projectManager = new ProjectManager(infoUtente); // 2. Reperimento di tutti i fascicoli in PITRE using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) { using (DataSet ds = new DataSet()) { // 1. Reperimento fascicoli per il titolario if (dbProvider.ExecuteQuery(ds, GetQueryFascicoli(infoUtente, opzioniMigrazione.Filtro))) { Log.GetInstance(amministrazione).Write("Reperimento fascicoli in amministrazione.", false); int index = 1; foreach (DataRow row in ds.Tables[0].Rows) { if (_interrompiMigrazione) { _interrompiMigrazione = false; string log = string.Format("Aggiornamento associazione fascicoli documenti al fascicolo {0} di {1}", index.ToString(), ds.Tables[0].Rows.Count); Log.GetInstance(amministrazione).Write(log, false); logger.Debug(log); break; } DocsPaVO.fascicolazione.Fascicolo fascicolo = GetFascicolo(row, infoUtente); // 2. Aggiornamento fascicolazioni del fascicolo AggiornaAssociazioniFascicoliDocumenti(infoUtente, amministrazione, fascicolo, projectManager); index++; } } else { // 1a. Errore nel reperimento dei fascicoli throw new ApplicationException( string.Format("Si รจ verificato un errore nel reperimento dei fascicolo per l'amministrazione '{0}'", amministrazione.Codice)); } } } infoUtente.idAmministrazione = idAmm; } else { // 1a. Utente non autenticato throw new ApplicationException( string.Format("Errore nell'autenticazione dell'utente '{0}'. Esito:{1}", userName, loginResult.ToString())); } } catch (Exception ex) { // Migrazione annullata Log.GetInstance(amministrazione).Write(ex.Message, true); } finally { Log.GetInstance(amministrazione).Flush(); } }