public override string ToString() { var result = new StringBuilder(); // todo : header result.Append("{"); var missingBars = 0; result.Append(BonesID); if (Skins == null || !Skins.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); missingBars = 0; result.Append(string.Join(",", Skins)); } if (Colors == null || !Colors.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); missingBars = 0; result.Append(string.Join(",", from entry in Colors select entry.Key + "=" + entry.Value.ToArgb())); } if (Scales == null || !Scales.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); missingBars = 0; result.Append(string.Join(",", Scales)); } if (SubLooks == null || !SubLooks.Any()) { missingBars++; } else { result.Append("|".ConcatCopy(missingBars + 1)); result.Append(string.Join(",", SubLooks.Select(entry => entry))); } result.Append("}"); return(result.ToString()); }
public void ProcessNotesAndScale(string selectedScale, IEnumerable <string> selectedNotes) { UpdateSelectedNotes(selectedNotes); if (SelectedNotes.Count > 1) { Scales = _dictionaryService.FindScales(SelectedNotes.Select(a => a.Note)).ToList(); } else { if (Scales != null && Scales.Any(a => a.Selected)) { Scales.SingleOrDefault(a => a.Selected).Selected = false; } Scales.Clear(); ResetNotesInScale(); SelectedScale = null; if (!selectedNotes.Any()) { ResetSelectedNotes(); } } ApplySelectedScales(selectedScale); ApplySelectedNotesToFretboard(); }