/// <summary>
        /// Returns the last publish date in the given <see cref="T:Tridion.ContentManager.CommunicationManagement.Publication" /> and
        /// given <see cref="T:Tridion.ContentManager.CommunicationManagement.PublicationTarget" />
        /// </summary>
        /// <param name="identifiableObject"><see cref="T:Tridion.ContentManager.ContentManagement.RepositoryLocalObject" /></param>
        /// <param name="publication"><see cref="T:Tridion.ContentManager.CommunicationManagement.Publication" /></param>
        /// <param name="publicationTarget"><see cref="T:Tridion.ContentManager.CommunicationManagement.PublicationTarget" /></param>
        /// <returns>
        /// Returns <see cref="T:System.DateTime" /> or DateTime.MinValue
        /// </returns>
        public static DateTime PublishedAt(this IdentifiableObject identifiableObject, Publication publication, PublicationTarget publicationTarget)
        {
            if (identifiableObject != null && publication != null && publicationTarget != null)
            {
                PublishInfo info = identifiableObject.PublishInfo(publication, publicationTarget).FirstOrDefault();

                if (info != null)
                {
                    return(info.PublishedAt);
                }
            }

            return(default(DateTime));
        }