public static RenderingReference GetRenderingReference(this Sitecore.Mvc.Presentation.Rendering rendering, Language language, Database database)
        {
            if (!rendering.IsXmlBasedRendering())
            {
                return(null);
            }

            var text = rendering.Properties["RenderingXml"];

            XElement element;

            try
            {
                element = XElement.Parse(text);
            }
            catch (Exception ex)
            {
                Log.Error($"Failed to parse rendering xml definition for rendering '{rendering.RenderingItemPath}'", ex, rendering.GetType());
                return(null);
            }

            return(new RenderingReference(element.ToXmlNode(), language, database));
        }