Beispiel #1
0
    private bool CouldFitAfter(PoclAction newAction, PoclAction test)
    {
        var before = GetAllBefore(test);

        before.Add(test);
        var beforeSet = new HashSet <PoclAction>(before.Distinct());
        var after     = GetAllAfter(newAction);

        after.Add(newAction);
        var afterSet = new HashSet <PoclAction>(after.Distinct());

        return(!partialOrdering.Any(x => afterSet.Contains(x.Item1) && beforeSet.Contains(x.Item2)));
    }
Beispiel #2
0
    private List <PoclAction> GetAllAfter(PoclAction target)
    {
        var ret = new List <PoclAction>();

        foreach (var order in partialOrdering)
        {
            if (order.Item1 == target)
            {
                ret.Add(order.Item2);
                ret.AddRange(GetAllAfter(order.Item2));
            }
        }
        return(ret);
    }