/// <summary> /// /// </summary> /// <param name="fascicolo"></param> public void SetFascicoloMigrazione(InfoFascicoloMigrazione fascicolo) { fascicolo.DataMigrazione = DateTime.Now.ToString(); int indexOf = this.FascicoliMigrazione.IndexOf(fascicolo); if (indexOf == -1) { this.FascicoliMigrazione.Insert(0, fascicolo); } else { this.FascicoliMigrazione[indexOf] = fascicolo; } }
/// <summary> /// Migrazione di un singolo fascicolo /// </summary> /// <param name="fascicolo"></param> /// <param name="infoUtente"></param> /// <param name="amministrazione"></param> /// <param name="statoMigrazione"></param> private static void ImportaFascicolo(DocsPaVO.fascicolazione.Fascicolo fascicolo, InfoUtente infoUtente, InfoAmministrazione amministrazione, InfoStatoMigrazione statoMigrazione) { //DocsPaDocumentale_DOCUMENTUM.Documentale.ProjectManager projectManager = new DocsPaDocumentale_DOCUMENTUM.Documentale.ProjectManager(infoUtente); //DocsPaDocumentale.Interfaces.IAclEventListener aclEventListener = new DocsPaDocumentale_DOCUMENTUM.Documentale.AclEventListener(infoUtente); // 1. Reperimento del ruolo creatore del fascicolo //DocsPaVO.utente.Ruolo ruolo = DocsPaDocumentale_DOCUMENTUM.DocsPaServices.DocsPaQueryHelper.getRuoloCreatore(fascicolo.systemID); DocsPaVO.utente.Ruolo ruolo = null; // NB: il reperimento dei fascicoli generali serve solo per migrare // gli eventuali sottofascicoli, non per migrare il fascicolo stesso, // che è già stato creato in sede di creazione del nodo di titolario if (fascicolo.tipo == "G") { // 2. Migrazione dei sottofascicoli, in caso di fascicolo generale (già creato in sede di creazione del titolario) ImportaSottofascicoli(infoUtente, amministrazione, fascicolo, null, ruolo, statoMigrazione); } else { InfoFascicoloMigrazione fascicoloMigrazione = new InfoFascicoloMigrazione(fascicolo); // Calcolo dell'hash del fascicolo fascicoloMigrazione.HashFascicolo = GetHashFascicolo(fascicolo, true); // 2. Creazione del corrispondente fascicolo in documentum //DocsPaVO.fascicolazione.ResultCreazioneFascicolo result; //DocsPaVO.utente.Ruolo[] ruoliSuperiori; /* * if (projectManager.ContainsFascicoloProcedimentale(fascicolo.systemID)) * { * // Fascicolo è già esistente, save dei dati con refresh delle entries dell'acl associata * fascicoloMigrazione.EsitoMigrazione = projectManager.ModifyProject(fascicolo, true); * * if (!fascicoloMigrazione.EsitoMigrazione) * fascicoloMigrazione.ErroreMigrazione = string.Format("Si è verificato un errore nella modifica del fascicolo '{0}' per l'amministrazione '{1}'", fascicolo.codice, amministrazione.Codice); * else * // Migrazione dei sottofascicoli * ImportaSottofascicoli(infoUtente, amministrazione, fascicolo, null, ruolo, statoMigrazione); * * Log.GetInstance(amministrazione).Write(string.Format("Migrazione fascicolo. Codice: '{0}' - Descrizione: '{1}'. Aggiornamento.", fascicolo.codice, fascicolo.descrizione), false); * } * else if (projectManager.CreateProject(null, * fascicolo, * ruolo, * false, * out result, * out ruoliSuperiori)) * { * if (result == DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK) * { * fascicoloMigrazione.EsitoMigrazione = true; * * Log.GetInstance(amministrazione).Write(string.Format("Migrazione fascicolo. Codice: '{0}' - Descrizione: '{1}'", fascicolo.codice, fascicolo.descrizione), false); * * // 3. Notifica evento di creazione fascicolo completato * aclEventListener.FascicoloCreatoEventHandler(null, fascicolo, ruolo, ruoliSuperiori); * * try * { * // 4. Migrazione dei sottofascicoli * ImportaSottofascicoli(infoUtente, amministrazione, fascicolo, null, ruolo, statoMigrazione); * } * catch (Exception ex) * { * //4a. Errore nella migrazione dei sottofascicoli, viene rimosso il fascicolo creato * ((DocsPaDocumentale_DOCUMENTUM.Documentale.ProjectManager)projectManager).DeleteProject(fascicolo); * * fascicoloMigrazione.EsitoMigrazione = false; * fascicoloMigrazione.ErroreMigrazione = ex.Message; * } * * // 5. Impostazione ownership del fascicolo * string utenteCreatore = DocsPaDocumentale_DOCUMENTUM.DocsPaObjectTypes.TypeUtente.NormalizeUserName(DocsPaDocumentale_DOCUMENTUM.DocsPaServices.DocsPaQueryHelper.getUtenteCreatore(fascicolo.systemID).userId); * ((DocsPaDocumentale_DOCUMENTUM.Documentale.ProjectManager)projectManager).SetOwnershipFascicolo(fascicolo.systemID, utenteCreatore); * } * else * { * // 3a. Errore nella creazione del fascicolo * fascicoloMigrazione.EsitoMigrazione = false; * fascicoloMigrazione.ErroreMigrazione = string.Format("Si è verificato un errore nella creazione del fascicolo '{0}' per l'amministrazione '{1}'", fascicolo.codice, amministrazione.Codice); * } * }*/ fascicoloMigrazione.DataMigrazione = DateTime.Now.ToString(); statoMigrazione.SetFascicoloMigrazione(fascicoloMigrazione); } }