public object Post()
        {
            DistributedTask dt;

            try{
                dt = JsonConvert.DeserializeObject <DistributedTask>(
                    GetJsonFromStream(Request.Body)
                    );
            } catch (Exception e) {
                Response.StatusCode = 400;
                var respdict = new Dictionary <string, object>();
                respdict.Add("status", 400);
                respdict.Add("error", "Failed to parse input.");
                return(respdict);
            }

            var taskdata = dt.Serialize();

            dispatcher.DispatchMessage(taskdata);
            var status = new WorkerTaskStatus(dt.task_id);

            status.UpdateStatus("Queued");
            return(status);
        }