예제 #1
0
        /// <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));
            }
        }
예제 #2
0
        /// <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));
            }
        }
예제 #3
0
        /// <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)
                                  );
                    }
                }
            }
        }