Пример #1
0
        /// <summary>
        /// Prova ad ottenere il contesto di elaborazione relativo alla classe specificata. Restituisce true
        /// se tale classe esiste e quindi è possibile eseguire il task, oppure false se non esiste e quindi
        /// non è possibile eseguire task.
        /// </summary>
        /// <param name="className">nome completo della classe da utilizzare per l'elaborazione del task</param>
        /// <param name="classVersion">versione della classe da utilizzare per l'elaborazione del task</param>
        /// <param name="context">
        /// Quando termina, questo metodo restituisce il contesto di elaborazione associato alla classe specificata
        /// nel caso in cui la classe venga trovata; in caso contrario restituisce il contesto predefinito, che non
        /// esegue alcuna elaborazione.
        /// </param>
        /// <returns>true, se esiste il contesto cercato per l'elaborazione, altrimenti false</returns>
        public bool TryGetContext(string className, string classVersion, out TaskPerformerContext context)
        {
            if (className != null && classVersion != null)
            {
                string classId = GetClassIdentifier(className, classVersion);

                if (classId.Length > 0 && m_TaskPerformers.TryGetValue(classId, out context))
                {
                    return(true);
                }
            }

            context = m_NoneTaskPerformerContext;
            return(false);
        }
        /// <summary>
        /// Aggiunge l'istanza specificata di ITaskPerformer a questo provider, restituendo true
        /// se l'operazione viene completata con successo, oppure false se in questo provider ne
        /// è già presente una avente stesso nome e stessa versione, o se quella specificata non
        /// è valida. Per poter essere considerata valida, l'istanza specificata non deve essere
        /// null e deve contenere un nome e una versione che non siano vuoti.
        /// </summary>
        /// <param name="classInstance">istanza di ITaskPerformer da aggiungere</param>
        /// <returns>true, se l'istanza è stata aggiunta al provider, false altrimenti</returns>
        public bool Add(ITaskPerformer classInstance)
        {
            bool isValidClass = true;
            isValidClass = isValidClass && classInstance != null;
            isValidClass = isValidClass && !string.IsNullOrEmpty(classInstance.Name);
            isValidClass = isValidClass && !string.IsNullOrEmpty(classInstance.Version);

            if (isValidClass)
            {
                String classId = GetClassIdentifier(classInstance.Name, classInstance.Version);
                if (!m_TaskPerformers.ContainsKey(classId))
                {
                    TaskPerformerContext context = new TaskPerformerContext(classInstance);
                    m_TaskPerformers.Add(classId, context);
                    return true;
                }
            }

            return false;
        }
Пример #3
0
        /// <summary>
        /// Aggiunge l'istanza specificata di ITaskPerformer a questo provider, restituendo true
        /// se l'operazione viene completata con successo, oppure false se in questo provider ne
        /// è già presente una avente stesso nome e stessa versione, o se quella specificata non
        /// è valida. Per poter essere considerata valida, l'istanza specificata non deve essere
        /// null e deve contenere un nome e una versione che non siano vuoti.
        /// </summary>
        /// <param name="classInstance">istanza di ITaskPerformer da aggiungere</param>
        /// <returns>true, se l'istanza è stata aggiunta al provider, false altrimenti</returns>
        public bool Add(ITaskPerformer classInstance)
        {
            bool isValidClass = true;

            isValidClass = isValidClass && classInstance != null;
            isValidClass = isValidClass && !string.IsNullOrEmpty(classInstance.Name);
            isValidClass = isValidClass && !string.IsNullOrEmpty(classInstance.Version);

            if (isValidClass)
            {
                String classId = GetClassIdentifier(classInstance.Name, classInstance.Version);
                if (!m_TaskPerformers.ContainsKey(classId))
                {
                    TaskPerformerContext context = new TaskPerformerContext(classInstance);
                    m_TaskPerformers.Add(classId, context);
                    return(true);
                }
            }

            return(false);
        }
 /// <summary>
 /// Inizializza un nuovo oggetto della classe TaskPerformerContextManager vuoto.
 /// </summary>
 public TaskPerformerContextManager()
 {
     m_TaskPerformers = new Dictionary<String, TaskPerformerContext>();
     m_NoneTaskPerformerContext = new TaskPerformerContext(new NoneTaskPerformer());
 }
        /// <summary>
        /// Prova ad ottenere il contesto di elaborazione relativo alla classe specificata. Restituisce true
        /// se tale classe esiste e quindi è possibile eseguire il task, oppure false se non esiste e quindi
        /// non è possibile eseguire task.
        /// </summary>
        /// <param name="className">nome completo della classe da utilizzare per l'elaborazione del task</param>
        /// <param name="classVersion">versione della classe da utilizzare per l'elaborazione del task</param>
        /// <param name="context">
        /// Quando termina, questo metodo restituisce il contesto di elaborazione associato alla classe specificata
        /// nel caso in cui la classe venga trovata; in caso contrario restituisce il contesto predefinito, che non
        /// esegue alcuna elaborazione.
        /// </param>
        /// <returns>true, se esiste il contesto cercato per l'elaborazione, altrimenti false</returns>
        public bool TryGetContext(string className, string classVersion, out TaskPerformerContext context)
        {
            if (className != null && classVersion != null)
            {
                string classId = GetClassIdentifier(className, classVersion);

                if (classId.Length > 0 && m_TaskPerformers.TryGetValue(classId, out context))
                {
                    return true;
                }
            }

            context = m_NoneTaskPerformerContext;
            return false;
        }
Пример #6
0
 /// <summary>
 /// Inizializza un nuovo oggetto della classe TaskPerformerContextManager vuoto.
 /// </summary>
 public TaskPerformerContextManager()
 {
     m_TaskPerformers           = new Dictionary <String, TaskPerformerContext>();
     m_NoneTaskPerformerContext = new TaskPerformerContext(new NoneTaskPerformer());
 }