Example #1
0
        public override bool RemoveActivity(T activityId)
        {
            lock (m_Lock)
            {
                // Clear out the activity from compiled dependencies first.
                IEnumerable <T> dependentActivityIds = m_ArrowGraphBuilder
                                                       .Activities
                                                       .Where(x => x.Dependencies.Contains(activityId))
                                                       .Select(x => x.Id);

                foreach (T dependentActivityId in dependentActivityIds)
                {
                    var dependentActivity = m_ArrowGraphBuilder.Activity(dependentActivityId);
                    dependentActivity.Dependencies.Remove(activityId);
                }

                m_ArrowGraphBuilder.Activity(activityId)?.SetAsRemovable();
                return(m_ArrowGraphBuilder.RemoveActivity(activityId));
            }
        }