private void CheckBuildState(ProjectState project, BuildState oldBuildState, BuildState newBuildState)
 {
     if (oldBuildState.LastBuild != newBuildState.LastBuild)
     {
         if ((newBuildState.Status == "FAILURE" || newBuildState.Status == "ERROR")
             && oldBuildState.Status == "FAILURE" || oldBuildState.Status == "ERROR")
         {
             PlaySound(project.StillFailingSound);
         }
         else if (newBuildState.Status == "FAILURE" || newBuildState.Status == "ERROR")
         {
             PlaySound(project.FailureSound);
         }
         else if (newBuildState.Status == "SUCCESS" && oldBuildState.Status != "SUCCESS")
         {
             PlaySound(project.FixedSound);
         }
     }
 }
        private void CheckProjectState(ProjectState oldProject, ProjectState newProject)
        {
            foreach (var oldBuildState in oldProject.Builds)
            {
                var newBuildState = newProject.Builds.FirstOrDefault(b => b.Name.Equals(oldBuildState.Name));

                if (newBuildState != null)
                {
                    CheckBuildState(oldProject, oldBuildState, newBuildState);
                }
            }
        }