Chimney.MPD.ChimneyMPDBase.TestPermission C# (CSharp) Method

TestPermission() public method

public TestPermission ( ) : Status>>.Task
return Status>>.Task
        public async Task<Tuple<Stats, Status>> TestPermission()
        {
            //var qId = await Send(MPDKeyWords.Send.Encode( MPDKeyWords.Client.Status.STATS ), true, false, true);

            bool success = await Connection.Send(_connection.Socket,
                MPDKeyWords.Send.Encode(MPDKeyWords.Client.Status.STATS));

            if (!success)
                return null;

            string response = await Connection.Recive(_connection.Socket,
                new List<string>() { MPDKeyWords.Response.SUCCESS_CONNECT },
                new List<string>() { MPDKeyWords.Response.OK + MPDKeyWords.Response.LINEBREAK },
                new List<string>() { MPDKeyWords.Response.ACK },
                new List<string>() { MPDKeyWords.Response.LINEBREAK });

            //var response = await Response(qId);

            if (string.IsNullOrEmpty(response) || response.Contains(MPDKeyWords.Response.ACK))
                return null;

            var stats = new Stats((await MPDKeyWords.Response.Encode(response)).FirstOrDefault());

            //qId = await Send(MPDKeyWords.Send.Encode( MPDKeyWords.Client.Status.STATUS ), true, false, true);

            //response = await Response(qId);

            success = await Connection.Send(_connection.Socket,
                    MPDKeyWords.Send.Encode(MPDKeyWords.Client.Status.STATUS));

            if (!success)
                return null;

            response = await Connection.Recive(_connection.Socket,
                new List<string>() { MPDKeyWords.Response.SUCCESS_CONNECT },
                new List<string>() { MPDKeyWords.Response.OK + MPDKeyWords.Response.LINEBREAK },
                new List<string>() { MPDKeyWords.Response.ACK },
                new List<string>() { MPDKeyWords.Response.LINEBREAK });

            if (string.IsNullOrEmpty(response) || response.Contains(MPDKeyWords.Response.ACK))
                return null;

            var status = new Status((await MPDKeyWords.Response.Encode(response)).FirstOrDefault());

            return new Tuple<Stats, Status>(stats, status);
        }