Exemplo n.º 1
0
        /// <inheritdoc/>
        public string SetRating(string rating)
        {
            var currentTrack     = _api.NowPlaying_GetFileUrl();
            var decimalSeparator = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, CultureInfo.CurrentCulture);

            try
            {
                rating = rating.Replace('.', decimalSeparator);
                if (!float.TryParse(rating, out var fRating))
                {
                    fRating = -1;
                }

                if ((fRating >= 0 && fRating <= 5) || string.IsNullOrEmpty(rating))
                {
                    var value = string.IsNullOrEmpty(rating) ? string.Empty : fRating.ToString(CultureInfo.CurrentCulture);
                    _api.Library_SetFileTag(currentTrack, MetaDataType.Rating, value);
                    _api.Library_CommitTagsToFile(currentTrack);
                    _api.Player_GetShowRatingTrack();
                    _api.MB_RefreshPanels();
                }
            }
            catch (Exception)
            {
                // Ignored exception? should log
            }

            return(_api.Library_GetFileTag(currentTrack, MetaDataType.Rating).Replace(decimalSeparator, '.'));
        }