public static int SumFrameScores(this Frame[] frames) { //break out early if no frames have been recorded if (frames.Length == 0) { return(0); } int totalScore = 0; var objScore = new EngineService(); for (int i = 0; i < frames.Length; i++) { bool wasSpare = objScore.IsSpare(frames[i - 1]); totalScore += objScore.CalculateScore(frames[i], wasSpare); } return(totalScore); }