Пример #1
0
 public TrackDanceInfo(Dance dance, DanceCategories categories, uint?rawRating = null, DanceDifficulty difficulty = DanceDifficulty.Any, DanceReviewStatus status = DanceReviewStatus.NeedsReview)
 {
     Dance      = dance;
     Categories = categories;
     Difficulty = difficulty;
     RawRating  = rawRating;
     Status     = status;
 }
Пример #2
0
        protected void AddOrUpdateRatingForDance(Dance dance, uint?rating)
        {
            uint?existing;

            if (RatingsByDance.TryGetValue(dance, out existing) && existing.HasValue)
            {
                if (rating.HasValue)
                {
                    if (existing.Value != rating.Value)
                    {
                        throw new ApplicationException($"Conflicting ratings ({existing.Value} and {rating.Value}) for {dance}");
                    }
                }
            }
            RatingsByDance[dance] = rating;
        }
Пример #3
0
 public void AddDanceFiltersByCategory(params DanceCategory[] categories)
 {
     foreach (var category in categories)
     {
         foreach (var dance in Dances.All)
         {
             var mask      = Dance.ToCategoriesMask(category);
             var effective = dance.Categories & mask;
             if (effective != DanceCategories.None)
             {
                 AddFilter(new TrackDanceFilter(dance)
                 {
                     Name        = $"{dance.Name}-{mask.ToString()}",
                     FilterGroup = category.ToString(),
                     Categories  = effective
                 });
             }
         }
     }
 }
Пример #4
0
 protected bool TryGetDance(string tag, out Dance dance)
 {
     dance = MusicLibrary.Lib.Dances.ByName[tag];
     return(dance != null);
 }