[WF4] Trouver le premier scope accessible

Publié le 02 février 2010 par Jeremy.jeanson

Le designer de variables aillant besoin d’un scope, vous pouvez vous aussi avoir besoin lors du design de connaitre le premier scope accessible par votre activité. Ceci par exemple pour tester l’existence d’une variable.

C#

/// <summary>
internal static class VariablesHelper
{
// Nom de la propriété "Variables"
public const String VariablesPropertyName = "Variables";

/// Retouner le premier parent pouvant contenir des variables
/// </summary>
/// <param name="modelItem"></param>
/// <returns></returns>
private static ModelItem GetFirstParentWithVariables(ModelItem modelItem)
{
    // Test si on trouve une liste de propriétés
    if (modelItem.Properties
        .Any(c =>
            c.Name == VariablesHelper.VariablesPropertyName
            & c.PropertyType == typeof(Collection<Variable>)))
    {
        return modelItem;
    }

    // Test si on a un parent
    if (modelItem.Parent != null)
    {
        return GetFirstParentWithVariables(modelItem.Parent);
    }
    else
    {
        return null;
    }
}
}