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