Beispiel #1
0
        /// <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));
            }
        }