private void ShowMessageForPublishStatus(PublishStatus status, ContentItemDisplay display) { switch (status.StatusType) { case PublishStatusType.Success: case PublishStatusType.SuccessAlreadyPublished: display.AddSuccessNotification( ui.Text("speechBubbles", "editContentPublishedHeader", UmbracoUser), ui.Text("speechBubbles", "editContentPublishedText", UmbracoUser)); break; case PublishStatusType.FailedPathNotPublished: display.AddWarningNotification( ui.Text("publish"), ui.Text("publish", "contentPublishedFailedByParent", string.Format("{0} ({1})", status.ContentItem.Name, status.ContentItem.Id), UmbracoUser).Trim()); break; case PublishStatusType.FailedCancelledByEvent: display.AddWarningNotification( ui.Text("publish"), ui.Text("speechBubbles", "contentPublishedFailedByEvent")); break; case PublishStatusType.FailedAwaitingRelease: display.AddWarningNotification( ui.Text("publish"), ui.Text("publish", "contentPublishedFailedAwaitingRelease", new[] { string.Format("{0} ({1})", status.ContentItem.Name, status.ContentItem.Id) }, UmbracoUser).Trim()); break; case PublishStatusType.FailedHasExpired: //TODO: We should add proper error messaging for this! case PublishStatusType.FailedIsTrashed: //TODO: We should add proper error messaging for this! case PublishStatusType.FailedContentInvalid: display.AddWarningNotification( ui.Text("publish"), ui.Text("publish", "contentPublishedFailedInvalid", new[] { string.Format("{0} ({1})", status.ContentItem.Name, status.ContentItem.Id), string.Join(",", status.InvalidProperties.Select(x => x.Alias)) }, UmbracoUser).Trim()); break; default: throw new IndexOutOfRangeException(); } }