private static bool TryFormatMediaRssCommunityStarRating(MediaRssCommunityStarRating starRatingToFormat, out XElement starRatingElement)
        {
            starRatingElement = default;

            if (starRatingToFormat == null)
            {
                return(false);
            }

            var childAttributes = new List <XAttribute>();

            if (starRatingToFormat.Average != null)
            {
                childAttributes.Add(new XAttribute("average", starRatingToFormat.Average.Value.ToString("0.####", CultureInfo.InvariantCulture)));
            }

            if (starRatingToFormat.Count != null)
            {
                childAttributes.Add(new XAttribute("count", starRatingToFormat.Count.Value.ToString(CultureInfo.InvariantCulture)));
            }

            if (starRatingToFormat.Min != null)
            {
                childAttributes.Add(new XAttribute("min", starRatingToFormat.Min.Value.ToString("0.####", CultureInfo.InvariantCulture)));
            }

            if (starRatingToFormat.Max != null)
            {
                childAttributes.Add(new XAttribute("max", starRatingToFormat.Max.Value.ToString("0.####", CultureInfo.InvariantCulture)));
            }

            if (!childAttributes.Any())
            {
                return(false);
            }

            starRatingElement = new XElement(_media + "starRating", childAttributes);

            return(true);
        }
        private static bool TryParseMediaRssCommunityStarRating(XElement starRatingElement, out MediaRssCommunityStarRating parsedStarRating)
        {
            parsedStarRating = default;

            if (TryParseDoubleAttribute(starRatingElement?.Attribute("average"), out var parsedAverage))
            {
                parsedStarRating         = parsedStarRating ?? new MediaRssCommunityStarRating();
                parsedStarRating.Average = parsedAverage;
            }

            if (TryParseIntegerAttribute(starRatingElement?.Attribute("count"), out var parsedCount))
            {
                parsedStarRating       = parsedStarRating ?? new MediaRssCommunityStarRating();
                parsedStarRating.Count = parsedCount;
            }

            if (TryParseDoubleAttribute(starRatingElement?.Attribute("min"), out var parsedMin))
            {
                parsedStarRating     = parsedStarRating ?? new MediaRssCommunityStarRating();
                parsedStarRating.Min = parsedMin;
            }

            if (TryParseDoubleAttribute(starRatingElement?.Attribute("max"), out var parsedMax))
            {
                parsedStarRating     = parsedStarRating ?? new MediaRssCommunityStarRating();
                parsedStarRating.Max = parsedMax;
            }

            if (parsedStarRating == null)
            {
                return(false);
            }

            return(true);
        }