private void ForceStopAgent()
        {
            Inbox.AddMessage("is_active", false);
            CheckTaskingResponse msg = new CheckTaskingResponse()
            {
                action     = "get_tasking",
                tasks      = new Task[0],
                delegates  = new Dictionary <string, string> [0],
                message_id = ""
            };
            string strMsg = JsonConvert.SerializeObject(msg);

            SortMessages(strMsg);
        }
        // returns a UUID of the task_id or get_tasking
        internal bool SortMessages(string message, string id = "")
        {
            string key = "";
            string action;
            string msg;
            JToken messageId;

            if (message == null || message == "")
            {
                DebugWriteLine($"Empty message. Abort sort.");
                return(false);
            }
            JObject json = (JObject)JsonConvert.DeserializeObject(message);

            action = json.Value <string>("action");
            if (json.TryGetValue("message_id", out messageId))
            {
                key = messageId.ToString();
            }

            DebugWriteLine($"Sorting message with action {action}...");
            switch (action)
            {
            case "unlink":
                ForceStopAgent();
                break;

            case "checkin":
                if (key == "")
                {
                    key = "checkin-" + Guid.NewGuid().ToString();
                }
                DebugWriteLine($"Message Key set to: {key}. Adding to inbox...");
                Inbox.AddMessage(key, message);
                DebugWriteLine($"SUCCESS! Added message {key} to inbox!");
                break;

            case "get_tasking":
                if (key == "")
                {
                    key = "get_tasking-" + Guid.NewGuid().ToString();
                }
                DebugWriteLine($"Message Key set to: {key}. Adding to inbox...");
                Inbox.AddMessage(key, message);
                DebugWriteLine($"SUCCESS! Added message {key} to inbox!");
                break;

            case "post_response":
                var resp = JsonConvert.DeserializeObject <MythicServerResponse>(message);
                if (resp.delegates != null && resp.delegates.Length > 0)
                {
                    CheckTaskingResponse delegateMessage = new CheckTaskingResponse()
                    {
                        action     = "get_tasking",
                        tasks      = new Task[0],
                        delegates  = resp.delegates,
                        message_id = key
                    };
                    string delegateMessageString = JsonConvert.SerializeObject(delegateMessage);
                    SortMessages(delegateMessageString);
                }
                foreach (var response in resp.responses)
                {
                    key = response.task_id;
                    msg = JsonConvert.SerializeObject(response);
                    DebugWriteLine($"Message Key set to: {key}. Adding to inbox...");
                    Inbox.AddMessage(key, msg);
                    DebugWriteLine($"SUCCESS! Added message {key} to inbox!");
                }
                // Create a new TaskQueue
                key = "get_tasking-" + Guid.NewGuid().ToString();

                break;

            case "upload":
                key = json.Value <string>("task_id");
                DebugWriteLine($"Message Key set to: {key}. Adding to inbox...");
                Inbox.AddMessage(key, message);
                DebugWriteLine($"SUCCESS! Added message {key} to inbox!");
                break;

            default:
                if (id == "")
                {
                    throw new Exception("Couldn't parse message");
                }
                Inbox.AddMessage(id, message);
                //throw new Exception($"Unsupported message type: {action}");
                //return false;
                break;
            }
            return(true);
        }