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; }
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; }
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 }); } } } }
protected bool TryGetDance(string tag, out Dance dance) { dance = MusicLibrary.Lib.Dances.ByName[tag]; return(dance != null); }