public async Task Put()

in API/Controllers/MeetingController.cs [247:317]


        public async Task<dynamic> Put([FromBody]MeetingRequest mreq)
        {
            if (mreq.meetingId == null)
            {
                throw CreateAPIError("0", "Request is missing the required field 'meetingId'");
            }

            dynamic authDetails;
            try
            {
                authDetails = await AuthenticateUCWA();
            }
            catch (Exception ex)
            {
                telemetry.TrackException(ex);
                throw CreateAPIError("3", "Could not authenticate to UCWA.");
            }
            string meetingManagementURL = authDetails.onlineMeetingURL + "/" + mreq.meetingId;

            // Extract the magic etag value & GUID that need to be passed in PUT operations
            string guid = "";
            string etag = "";
            try
            {
                HttpWebRequest req = CreateRequest(meetingManagementURL, "GET", authDetails.accessToken);
                string res = GetResponse(req);
                dynamic jsonResponse = JsonConvert.DeserializeObject(res);
                etag = jsonResponse.etag.ToString();
                foreach (var x in jsonResponse)
                {
                    if (x.Value.ToString() == ucwaPassMeString)
                    {
                        guid = x.Name.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                telemetry.TrackException(ex);
                throw CreateAPIError("2", "Could not retrieve meeting information from UCWA");
            }

            // Issue the PUT request based on passed values
            try
            {
                MeetingRequestUCWA meeting = new MeetingRequestUCWA();
                meeting.attendees = PreprocessAttendeeList(mreq.attendees);
                meeting.accessLevel = "Invited";
                meeting.automaticLeaderAssignment = "SameEnterprise";
                meeting.subject = mreq.subject;
                meeting.description = mreq.description;
                meeting.expirationTime = mreq.expirationTime;

                JObject o = JObject.FromObject(meeting);
                o.Add("onlineMeetingId", mreq.meetingId);
                o.Add(guid, ucwaPassMeString);
                var json = o.ToString();

                HttpWebRequest req = CreateRequest(meetingManagementURL, "PUT", authDetails.accessToken, "application/json");
                req.Headers.Add("If-Match", '"' + etag + '"');
                SendRequestBody(req, json);

                var res = GetResponse(req);
                return JsonConvert.DeserializeObject(res);
            }
            catch (Exception ex)
            {
                telemetry.TrackException(ex);
                throw CreateAPIError("1", "Unexpected error occurred.");
            }
        }