private void HandleData(JObject obj, int senderID) { string type = (string)obj["type"]; Common.Task task; switch (type) { case "AddTask": task = Common.Task.Parse((JObject)obj["task"]); string parentTask = (string)obj["parent"]; if (parentTask != null) { tasks.Add(task, parentTask); } else { tasks.Add(task); } Console.WriteLine("made a new task: " + task.name + "(" + task.ID + ")"); ForwardToClients(obj, senderID); break; case "RenameTask": string taskID = (string)obj["ID"]; string newName = (string)obj["newName"]; tasks.Rename(taskID, newName); Console.WriteLine("Renamed task: " + newName + "(" + taskID + ")"); ForwardToClients(obj, senderID); break; case "CheckTask": taskID = (string)obj["ID"]; bool check = (bool)obj["check"]; tasks.Check(taskID, check, this); Console.WriteLine("{0} the task: " + taskID, check ? "Checked" : "Unchecked"); ForwardToClients(obj, senderID); break; case "DescriptionChange": taskID = (string)obj["ID"]; string description = (string)obj["description"]; tasks.DescriptionChange(taskID, description, this); Console.WriteLine("Added the description \"" + description + "\" to " + taskID); ForwardToClients(obj, senderID); break; case "FolderChange": taskID = (string)obj["ID"]; bool isFolder = (bool)obj["isFolder"]; tasks.FolderChange(taskID, isFolder, this); Console.WriteLine("Set the task " + taskID + " to a {0}", isFolder ? "folder" : "task"); ForwardToClients(obj, senderID); break; case "DueDateChange": taskID = (string)obj["ID"]; DateTime?newDate = (DateTime?)obj["date"]; tasks.DateDueChange(taskID, newDate, this); Console.WriteLine("The task " + taskID + " is now due " + newDate); ForwardToClients(obj, senderID); break; } }