/// <summary> /// Raise an incident. /// </summary> /// <param name="joinClassData">The incident data.</param> /// <returns>The task for await.</returns> public async Task <ICall> JoinClassAsync(JoinClassData joinClassData) { // A tracking id for logging purposes. Helps identify this call in logs. string incidentId = Guid.NewGuid().ToString(); var botMeetingCall = await this.JoinCallAsync(joinClassData, incidentId).ConfigureAwait(false); var request = new { Type = "call_join", Content = botMeetingCall.Resource, Request = joinClassData }; string jsonString = JsonSerializer.Serialize(request); using (var client = new HttpClient()) { var response = client.PostAsync("https://ngage.eastus2.cloudapp.azure.com:2145/teamsbot", new StringContent(jsonString, Encoding.UTF8, "application/json")).Result; if (response.IsSuccessStatusCode) { var responseContent = response.Content; // by calling .Result you are synchronously reading the result string responseString = responseContent.ReadAsStringAsync().Result; Console.WriteLine(responseString); } } return(botMeetingCall); }
public async Task <IActionResult> JoinClassAsync([FromBody] JoinClassData joinClassData) { Validator.NotNull(joinClassData, nameof(JoinClassData)); try { var call = await this.bot.JoinClassAsync(joinClassData).ConfigureAwait(false); var values = new { Status = "OK", ClassID = joinClassData.ClassId, Call = call }; var serializer = new CommsSerializer(pretty: true); var json = serializer.SerializeObject(values); return(this.Ok(json)); } catch (Exception e) { return(this.Exception(e)); } }