static async Task <bool> PostTaskStatusEvent(TaskStatusEvent message) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // This calls a Fenetre Servicing Shell Test Harness but it can call any Web API that you decide will contain the logic to handle this event HttpResponseMessage response = await client.PostAsJsonAsync("api/serviceHubEvent", message); var result = response.IsSuccessStatusCode; return(result); }
public async Task <IActionResult> Post([FromBody] TaskStatusEvent taskStatusEvent) { await this._hubContext.Clients.All.SendAsync( "gridupdate", sequenceNumber ++, taskStatusEvent.TaskId, taskStatusEvent.Status, taskStatusEvent.StatusChangedBy, taskStatusEvent.StatusChangedOn, JsonConvert.SerializeObject(taskStatusEvent, Formatting.Indented) ); return(Ok()); }
static TaskStatusEvent GetTaskStatusEvent(Message message) { var taskStatusEvent = new TaskStatusEvent(); // You would normally do something like DeserializeObject into TaskStatusEvent // but at this point in time Service Hub is sending out a message within a message by mistake and I don't really want to bother // adding these four MessageWrapper classes that wrap the TaskStatusEvent into this project so use dynamic temporarily until I get them to change their code var messageBody = Encoding.UTF8.GetString(message.Body); var innerMessage = JsonConvert.DeserializeObject <Message <TaskStatusEvent> >(messageBody); var entityBody = innerMessage.EntityBody; taskStatusEvent.TaskId = entityBody.TaskId; taskStatusEvent.TaskTemplate = entityBody.TaskTemplate; taskStatusEvent.StatusId = entityBody.StatusId; taskStatusEvent.Status = entityBody.Status; taskStatusEvent.StatusChangedBy = entityBody.StatusChangedBy; taskStatusEvent.StatusChangedOn = entityBody.StatusChangedOn; taskStatusEvent.StatusChangeReason = entityBody.StatusChangeReason; taskStatusEvent.Comments = entityBody.Comments; taskStatusEvent.AdditionalDetails = entityBody.AdditionalDetails; return(taskStatusEvent); }