private static List<List<KeyValuePair<string, string>>> GetResponseObjects(List<KeyValuePair<string, string>> keyValuePairList)
{
var outerList = new List<List<KeyValuePair<string, string>>>();
if (keyValuePairList != null)
{
var innerList = new List<KeyValuePair<string, string>>();
var outer = false;
var i = 0;
foreach (var keyValuePair in keyValuePairList)
{
if ((i == 0 || outer)
&& (keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Outer.DIRECTORY)
|| keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Outer.FILE)
|| keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Outer.PLAYLIST)
|| keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Outer.OUTPUTID)))
{
outer = true;
if (innerList.Count > 0)
outerList.Add(innerList);
innerList = new List<KeyValuePair<string, string>>();
}
else if (!outer &&
(keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Inner.ARTIST)
|| keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Inner.ALBUM)
|| keyValuePair.Key.Equals(MPDKeyWords.Response.Sections.Inner.GENRE)))
{
outer = false;
if (innerList.Count > 0)
outerList.Add(innerList);
innerList = new List<KeyValuePair<string, string>>();
}
innerList.Add(keyValuePair);
i++;
}
if (innerList.Count > 0)
outerList.Add(innerList);
}
return outerList;
}
}