/// <summary> /// Implementazione della logica del task di migrazione dati /// per tutti i ruoli di una singola amministrazione DocsPa /// </summary> /// <param name="infoUtente"></param> /// <param name="amministrazione"></param> public static void ImportaRuoli(InfoUtente infoUtente, InfoAmministrazione amministrazione, out List <string> ruoliImportati) { ruoliImportati = new List <string>(); // 1. Reperimento ruoli dell'amministrazione OrgRuolo[] roles = GetRuoli(infoUtente, amministrazione); if (roles.Length > 0) { Log.GetInstance(amministrazione).Write(string.Format("Reperimento dei ruoli dell'amministrazione. Numero ruoli: {0}", roles.Length.ToString()), false); // 2. Import di ciascun ruolo in DCTM DocsPaDocumentale_DOCUMENTUM.Documentale.OrganigrammaManager organigrammaManager = new DocsPaDocumentale_DOCUMENTUM.Documentale.OrganigrammaManager(infoUtente); foreach (OrgRuolo role in roles) { // 3. Verifica esistenza ruolo if (organigrammaManager.ContainsGroup(role.Codice)) { Log.GetInstance(amministrazione).Write(string.Format("Ruolo '{0}' già esistente", role.Codice), false); } else { EsitoOperazione result = organigrammaManager.InserisciRuolo(role, false); if (result.Codice == RESULT_CODE_OK) { Log.GetInstance(amministrazione).Write(string.Format("Migrazione ruolo '{0}'", role.Codice), false); ruoliImportati.Add(role.Codice); } else { // 2a. Errore nell'import del ruolo (migrazione interrotta) throw new ApplicationException( string.Format("Si è verificato un errore nell'import del ruolo '{0}' per l'amministrazione '{1}'. Codice: {2} - Descrizione: {3}", role.Codice, amministrazione.Codice, result.Codice.ToString(), result.Descrizione) ); } } } } else { // 1a. Errore nella migrazione dei ruoli (migrazione interrotta) throw new ApplicationException( string.Format("Si è verificato un errore nell'import dei ruoli per l'amministrazione '{0}'. Descrizione: Nessun ruolo trovato", amministrazione.Codice)); } }
/// <summary> /// Implementazione della logica del task di migrazione dati /// per tutti gli utenti di una singola amministrazione DocsPa /// </summary> /// <param name="infoUtente"></param> /// <param name="amministrazione"></param> public static void ImportaUtenti(InfoUtente infoUtente, InfoAmministrazione amministrazione) { // 1. Reperimento utenti dell'amministrazione OrgUtente[] users = GetUtenti(infoUtente, amministrazione); if (users.Length > 0) { Log.GetInstance(amministrazione).Write(string.Format("Reperimento degli utenti dell'amministrazione. Numero utenti: {0}", users.Length.ToString()), false); DocsPaDocumentale_DOCUMENTUM.Documentale.OrganigrammaManager organigrammaManager = new DocsPaDocumentale_DOCUMENTUM.Documentale.OrganigrammaManager(infoUtente); foreach (OrgUtente user in users) { // 2. Verifica esistenza utente if (organigrammaManager.ContainsUser(user.UserId)) { Log.GetInstance(amministrazione).Write(string.Format("Utente '{0}' già esistente", user.UserId), false); } else { // 3. Impostazione password di tipo amministratore per l'utente Log.GetInstance(amministrazione).Write(string.Format("Impostazione password di tipo amministratore per l'utente '{0}'. Nuova password: '******'", user.UserId, DEFAULT_USER_PASSWORD), false); user.Password = DEFAULT_USER_PASSWORD; // 4. Import di ciascun utente in DCTM EsitoOperazione result = organigrammaManager.InserisciUtente(user); if (result.Codice == RESULT_CODE_OK) { Log.GetInstance(amministrazione).Write(string.Format("Migrazione utente '{0}'", user.UserId), false); } else { // 3a. Errore nell'import dell'utente (migrazione interrotta) throw new ApplicationException(string.Format("Si è verificato un errore nell'import dell'utente '{0}' per l'amministrazione '{1}'. Codice: {2} - Descrizione: {3}", user.UserId, amministrazione.Codice, result.Codice.ToString(), result.Descrizione)); } } } } else { // 1a. Errore nella migrazione degli utenti (migrazione interrotta) throw new ApplicationException(string.Format("Si è verificato un errore nell'import degli utenti per l'amministrazione '{0}'. Descrizione: Nessun utente trovato", amministrazione.Codice)); } }
/// <summary> /// Implementazione della logica del task di migrazione dati /// per associare tutti gli utenti a tutti i ruoli per una singola amministrazione DocsPa /// </summary> /// <param name="infoUtente"></param> /// <param name="amministrazione"></param> public static void ImportaAssociazioniUtentiRuoli(InfoUtente infoUtente, InfoAmministrazione amministrazione) { // 1. Reperimento dati associazione UserRoleEntry[] entries = GetUserRoleEntries(infoUtente, amministrazione); DocsPaDocumentale_DOCUMENTUM.Documentale.OrganigrammaManager organigrammaManager = new DocsPaDocumentale_DOCUMENTUM.Documentale.OrganigrammaManager(infoUtente); foreach (UserRoleEntry entry in entries) { if (organigrammaManager.ContainsGroupUserById(entry.IdGroup, entry.IdPeople)) { // L'utente è già stato associato al ruolo Log.GetInstance(amministrazione).Write(string.Format("Utente con id {0} già associato al gruppo con id {1}", entry.IdPeople, entry.IdGroup), false); } else { Log.GetInstance(amministrazione).Write(string.Format("Reperimento delle associazioni utenti / ruoli dell'amministrazione. Numero associazioni: {0}", entries.Length.ToString()), false); // 2. Associazione utente con il ruolo EsitoOperazione retValue = organigrammaManager.InserisciUtenteInRuolo(entry.IdPeople.ToString(), entry.IdGroup.ToString()); if (retValue.Codice == RESULT_CODE_OK) { Log.GetInstance(amministrazione).Write(string.Format("Migrazione associazione utente / ruolo. IdPeople: {0} - IdGroup: {1}", entry.IdPeople.ToString(), entry.IdGroup.ToString()), false); } else { // 2a. Errore nell'associazione utente - ruolo throw new ApplicationException( string.Format("Si è verificato un errore nell'inserimento dell'utente con Id '{0}' nel gruppo con Id '{1}' per l'amministrazione '{2}'. Codice: {3} - Descrizione: {4}", entry.IdPeople.ToString(), entry.IdGroup.ToString(), amministrazione.Codice, retValue.Codice.ToString(), retValue.Descrizione) ); } } } }