private void UpdateNotifierByModel(ProjectModel project, BuildDetailModel buildDetail) { Debug.Assert(project != null); Debug.Assert(buildDetail != null); if (buildDetail.building == true) { this.UpdateNotifier( runningNotificationInformation_, project.displayName, string.Format("Building [{0}]...", buildDetail.number), string.Format("{0}{1}", GetCauseDescription(buildDetail), string.Join("\r\n", buildDetail.changeSet.items. Select(item => string.Format("{0}: {1}", item.commitId.Trim(), item.author.fullName.Trim()))))); } else if (buildDetail.result == Result.SUCCESS) { this.UpdateNotifier( successNotificationInformation_, project.displayName, string.Format("Build SUCCESS [{0}].", buildDetail.number)); } else if (buildDetail.result == Result.UNSTABLE) { this.UpdateNotifier( unstableNotificationInformation_, project.displayName, string.Format("Build UNSTABLE [{0}].", buildDetail.number)); } else if (buildDetail.result == Result.FAILURE) { this.UpdateNotifier( failedNotificationInformation_, project.displayName, string.Format("Build FAILED [{0}].", buildDetail.number)); } else { this.UpdateNotifier( unknownNotificationInformation_, project.displayName, string.Format("Build status not recognized [{0}].", buildDetail.number)); } }
private static string GetCauseDescription(BuildDetailModel buildDetail) { Debug.Assert(buildDetail != null); var action = buildDetail.actions.FirstOrDefault(); if (action == null) { return null; } var cause = action.causes.FirstOrDefault(); if (cause == null) { return null; } if (string.IsNullOrWhiteSpace(cause.shortDescription) == true) { return null; } return cause.shortDescription.Trim() + "\r\n"; }