Endjin.Assembly.ChangeDetection.Rules.BreakingChangeRule.Detect C# (CSharp) Méthode

Detect() public méthode

public Detect ( AssemblyDiffCollection assemblyDiffCollection ) : bool
assemblyDiffCollection Endjin.Assembly.ChangeDetection.Diff.AssemblyDiffCollection
Résultat bool
        public bool Detect(AssemblyDiffCollection assemblyDiffCollection)
        {
            if (assemblyDiffCollection.AddedRemovedTypes.RemovedCount > 0)
            {
                return true;
            }

            if (assemblyDiffCollection.ChangedTypes.Count > 0)
            {
                foreach (var typeChange in assemblyDiffCollection.ChangedTypes)
                {
                    if (typeChange.HasChangedBaseType)
                    {
                        return true;
                    }

                    if (typeChange.Interfaces.Count > 0)
                    {
                        if (typeChange.Interfaces.Removed.Any())
                        {
                            return true;
                        }
                    }

                    if (typeChange.Events.Removed.Any())
                    {
                        return true;
                    }

                    if (typeChange.Fields.Removed.Any())
                    {
                        return true;
                    }

                    if (typeChange.Methods.Removed.Any())
                    {
                        return true;
                    }
                }
            }

            return false;
        }
    }

Usage Example

        public AnalysisResult Analyze(string previousAssembly, string currentAssembly, string proposedVersionNumber)
        {
            var differ = new DiffAssemblies();

            var previous = new FileQuery(previousAssembly);
            var current = new FileQuery(currentAssembly);

            var differences = differ.Execute(new List<FileQuery>
            {
                previous
            }, 
            new List<FileQuery>
            {
                current
            });

            var rule = new BreakingChangeRule();

            var breakingChange = rule.Detect(differences);

            if (breakingChange)
            {
                var semVer = SemVersion.Parse(proposedVersionNumber);

                var decidedVersionNumber = semVer.Change(semVer.Major + 1, 0, 0);

                proposedVersionNumber = decidedVersionNumber.ToString();
            }

            return new AnalysisResult
            {
                BreakingChangesDetected = breakingChange,
                VersionNumber = proposedVersionNumber
            };
        }
All Usage Examples Of Endjin.Assembly.ChangeDetection.Rules.BreakingChangeRule::Detect
BreakingChangeRule