Example #1
0
            public void RemoveFromFavorites(WebView webView, NameValueCollection parameters)
            {
                var   chordParams = new ChordParams(parameters);
                var   tokens      = parameters["positions"].Split(',');
                var   positions   = tokens.Select(i => int.Parse(i)).ToArray();
                var   id          = $"{chordParams.Root}{chordParams.ChordType}";
                Chord chord;

                if (!Chord.TryParse(id, _currentSettings.conv, out chord))
                {
                    return;
                }
                if (!Favorites.Chords.ContainsKey(chord))
                {
                    return;
                }
                try
                {
                    var layout = new GuitarChordLayout(chord, positions);
                    Favorites.Chords[chord].Remove(layout);
                    Favorites.Save();

                    var js = string.Format("setFavorite('.chord-layout[data-positions=\"{0}\"]', '{1}');", parameters["positions"], false);
                    webView.LoadUrl("javascript:" + js);
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine($"Cannot save favorites\n{e.Message}");
                }
            }
 public GuitarChordLayoutDecorator(GuitarChordLayout layout, NamingConvention namingConvention = NamingConvention.English)
 {
     _layout       = layout;
     RenderingFret = Fret - 1;
     if (Fret <= 4 && IntPositions.All(i => i <= 4))
     {
         RenderingFret = 0;
     }
     _namingConvention = namingConvention;
 }
Example #3
0
 public GuitarChordLayoutDecorator[] GenerateLayouts(bool allowBarre, bool allowSpecial, bool allowPartial, int maxFret)
 {
     return(GuitarChordLayout.Generate(_chord, allowBarre, allowSpecial, allowPartial, maxFret)
            .OrderBy(i => i.GuitarChordType)
            .Select(i => new GuitarChordLayoutDecorator(i, _namingConvention))
            .OrderBy(i => i.RenderingFret)
            .ThenBy(i => i.Complete ? 0 : 1)
            .ThenBy(i => (i.Notes[0] == _chord.Root ? 0 : 1))
            .ToArray());
 }