CentralMine.NET.US_Stratum.ProcessNetworkLine C# (CSharp) Method

ProcessNetworkLine() private method

private ProcessNetworkLine ( string line ) : void
line string
return void
        void ProcessNetworkLine(string line)
        {
            Console.WriteLine(line);
            mLog.WriteLine(line);
            JObject obj = JsonConvert.DeserializeObject<JObject>(line);

            string pendingMethod = null;
            int? nid = (obj["id"]).Value<int?>();
            if( nid == null )
            {
                pendingMethod = (string)obj["method"];
            }
            else
            {
                int id = (int)obj["id"];
                if (mPendingRPCs.ContainsKey(id))
                {
                    //JObject error = (JObject)obj["error"];
                    //if( !error.HasValues )
                    {
                        pendingMethod = mPendingRPCs[id];
                    }

                    //else
                    //{
                    //    Console.WriteLine("RPC error for method: " + pendingMethod);
                    //    Disconnect();
                    //}
                    mPendingRPCs.Remove(id);
                }
                else
                {
                    Console.WriteLine("Unexpected RPC id: " + id);
                }
            }

            if( pendingMethod != null )
            {
                switch (pendingMethod)
                {
                    case "mining.subscribe":
                        MiningSubscribe(obj);
                        break;
                    case "mining.authorize":
                        MiningAuthorize(obj);
                        break;
                    case "mining.notify":
                        MiningNotify(obj);
                        break;
                    case "mining.submit":
                        MiningSubmit(obj, line);
                        break;
                    case "mining.set_difficulty":
                        MiningSetDifficulty(obj);
                        break;
                    default:
                        Console.WriteLine("Unhandled RPC response: " + pendingMethod);
                        break;
                }
            }
            else
            {
                Console.WriteLine("unknown method: " + line);
            }
        }