/// <summary> /// Funzione per la determinazione della possibilità da parte dell'utente di creare /// documenti di un particolare tipo /// </summary> /// <param name="protoType">Il tipo di documento che si desidera creare</param> /// <param name="functions">La lista di funzioni associate al ruolo</param> /// <returns>True se l'utente è abilitato alla creazione del documento del tipo richiesto</returns> private static bool CanCreateDocumentOfType( ImportDocumentsManager.ProtoType protoType, Funzione[] functions) { // La chiave di cui verificare la presenza nella lista di funzioni // associate al ruolo string strProtoType = String.Empty; switch (protoType) { case ImportDocumentsManager.ProtoType.A: strProtoType = "PROTO_IN"; break; case ImportDocumentsManager.ProtoType.P: strProtoType = "PROTO_OUT"; break; case ImportDocumentsManager.ProtoType.I: strProtoType = "PROTO_OWN"; break; } if (String.IsNullOrEmpty(strProtoType)) { throw new Exception("Tipo documento non valido."); } // Restituzione del risultato return(functions.Where(e => e.codice.Equals(strProtoType)).FirstOrDefault() != null); }
/// <summary> /// Funzione per l'importazione di un documento di emergenza a partire dai dati /// descrittivi contenuti all'interno di uno specifico oggetto. /// </summary> /// <param name="rowData">L'oggetto con le informazioni sul documento da importare</param> /// <param name="userInfo">Le informazioni sull'utente che ha lanciato la procedura</param> /// <param name="role">Il ruolo con cui è stata lanciata la procedura</param> /// <param name="serverPath">L'indirizzo della WA</param> /// <param name="isRapidClassificationRequired">True se è abilitata la classificazione rapida</param> /// <param name="isSmistamentoEnabled">True se è abilitato lo smistamento</param> /// <param name="sharedDirectoryPath">L'indirizzo della cartella scharata</param> /// <param name="protoType">Il tipo di documento da creare</param> /// <returns>Il risultato dell'importazione del documento</returns> public static ImportResult ImportRDEDocument( DocumentRowData rowData, InfoUtente userInfo, Ruolo role, string serverPath, bool isRapidClassificationRequired, bool isSmistamentoEnabled, string ftpAddress, bool isProfilationRequired, ImportDocumentsManager.ProtoType protoType, String ftpUsername, String ftpPassword, bool isEnabledPregressi) { #region Dichiarazione variabili // Possibilità da parte dell'utente di creare il documento della tipologia richiesta bool canCreateDocuments; // Il risultato dell'elaborazione ImportResult toReturn; // Il contenitore dei risultati ResultsContainer resultContainer = new ResultsContainer(); #endregion // Verifica della possibilità di creare documenti del tipo specificato canCreateDocuments = CanCreateDocumentOfType(protoType, (Funzione[])role.funzioni.ToArray(typeof(Funzione))); // Se con il ruolo corrente è possibile creare il documento della tipologi richiesta, // si procede alla creazione if (canCreateDocuments) { toReturn = ImportDocumentsManager.ImportDocument( rowData, userInfo, role, serverPath, isProfilationRequired, isRapidClassificationRequired, ftpAddress, isSmistamentoEnabled, protoType, ref resultContainer, ftpUsername, ftpPassword, isEnabledPregressi); } else { // Altrimenti aggiunta di un result negativo toReturn = new ImportResult() { Outcome = ImportResult.OutcomeEnumeration.KO, Message = "Utente non abilitato alla creazione di documenti di tipo " + protoType + "." } }; // Restituzione del risultato return(toReturn); }