private void HandleCallStatus(ArrayList calls) { List <Call> callList = new List <Call>(); foreach (Hashtable call in calls) { string callId = (string)call[CMessageParser.ApiStringConstants.CallStatusResponse.Id]; HoldStates holdStatus = StringToHoldState((string)call[CMessageParser.ApiStringConstants.CallStatusResponse.HoldStatus]); List <CallParticipant> callParticipantList = new List <CallParticipant>(); ArrayList participants = call[CMessageParser.ApiStringConstants.CallStatusResponse.Participants] as ArrayList; foreach (Hashtable participant in participants) { string number = (string)participant[CMessageParser.ApiStringConstants.CallParticipant.Number]; string displayName = (string)participant[CMessageParser.ApiStringConstants.CallParticipant.DisplayName]; CallStates state = StringToCallState((string)participant[CMessageParser.ApiStringConstants.CallParticipant.State]); long timeInitiated = System.Convert.ToInt64((string)participant[CMessageParser.ApiStringConstants.CallParticipant.TimeInitiated]); CallParticipant callParticipant = new CallParticipant(number, displayName, state, timeInitiated); callParticipantList.Add(callParticipant); } Call callData = new Call(callId, holdStatus, callParticipantList); callList.Add(callData); } if (OnCallStatus != null) { OnCallStatus(this, new CallStatusEventArgs(callList)); } }
public Call(string callId, HoldStates holdState, List <CallParticipant> participantList) { CallId = callId; HoldState = holdState; ParticipantList = new List <CallParticipant>(participantList); }