SirenOfShame.Lib.Watcher.RulesEngine.GetChangedBuildStatuses C# (CSharp) Method

GetChangedBuildStatuses() private method

private GetChangedBuildStatuses ( SirenOfShame.Lib.Watcher.BuildStatus allBuildStatuses ) : IList
allBuildStatuses SirenOfShame.Lib.Watcher.BuildStatus
return IList
        private IList<BuildStatus> GetChangedBuildStatuses(BuildStatus[] allBuildStatuses)
        {
            var oldBuildStatus = _previousBuildStatuses;
            _previousBuildStatuses = allBuildStatuses;
            var changedBuildStatuses = from newStatus in allBuildStatuses
                                       from oldStatus in oldBuildStatus.Where(s => s.BuildDefinitionId == newStatus.BuildDefinitionId).DefaultIfEmpty()
                                       where DidBuildStatusChange(oldStatus, newStatus)
                                       select newStatus;

            Debug.Assert(changedBuildStatuses != null, "changedBuildStatuses should not be null");
            Debug.Assert(PreviousWorkingOrBrokenBuildStatus != null, "PreviousWorkingOrBrokenBuildStatus should never be null");
            Debug.Assert(PreviousBuildStatus != null, "PreviousBuildStatus should never be null");

            return changedBuildStatuses.ToList();
        }