private void AddAffectedMethodsForChangedStaticConstructors()
        {
            var affectedTypes = MethodChanges
                                .Where(c => c.Method.IsStatic && c.Method.IsConstructor)
                                .Select(change => change.Method.DeclaringType.FullName).ToList();

            foreach (var type in affectedTypes)
            {
                var resolvedType = ClassDiagram.ResolveType(type);
                foreach (var method in resolvedType.Methods)
                {
                    MethodChanges.Add(new MethodChange(method, Change.Modified));
                }
            }
        }
        private void AddTypesUsingAnyAffectedType()
        {
            foreach (var invoke in Coverage.SelectMany(e => e.Value).Where(invoke => !(invoke.From is TestMethod)))
            {
                if (IsInAffectedClass(invoke.Target) && IsAffectedMethod(invoke.Target) && !IsInAffectedClass(invoke.From))
                {
                    var from = ClassDiagram.ResolveType(invoke.From.TypeName);
                    if (from != null)
                    {
                        var fromMethod = from.Methods.First(m => m.Name.Equals(invoke.From.Name));
                        var target     = ClassDiagram.ResolveType(invoke.Target.TypeName);

                        AffectedTypes.Add(from);
                        Edges.Add(new AffectedEdge(from, target, Edge.Use));
                        MethodChanges.Add(new MethodChange(fromMethod, Change.Using));
                    }
                }
            }
        }