Esempio n. 1
0
        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;
            }
        }