private static async Task<List<KeyValuePair<string, string>>> GetResponseKeyValuePairList(string responseString)
{
var list = new List<KeyValuePair<string, string>>();
if (!string.IsNullOrEmpty(responseString))
{
using (var stringReader = new StringReader(responseString))
{
string line = string.Empty;
while (!string.IsNullOrEmpty(line = await stringReader.ReadLineAsync())
&& !line.Equals(MPDKeyWords.Response.OK))
{
var pair = line.Split(MPDKeyWords.Response.KEYVALUESEPERATION.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
var key = (pair.Length > 0)
? pair[0]
: string.Empty;
if (pair.Length > 1)
pair[1] = pair[1].TrimStart(MPDKeyWords.Response.SPACE.ToCharArray());
var value = string.Empty;
for(var i = 1; i < pair.Length; i++)
{
value += pair[i];
if(i != pair.Length - 1) value += MPDKeyWords.Response.KEYVALUESEPERATION;
}
list.Add(new KeyValuePair<string, string>(key, value));
}
}
}
return list;
}