private void HandleCallRequest(Message message) { var request = new CallRequest(message.Sender, message.GetTextContent(), this); _pendingCallRequests.Add(request); NewCallRequest?.Invoke(this, request, message); }
public void RespondToRequest(CallRequest request) { if (request.Response == null) { //Ignored _pendingCallRequests.Remove(request); return; } switch (request.Response.Value) { case Message.CallResponseType.RequestDenied: case Message.CallResponseType.RequestAccepted: JoinNewConversation(); Send(new Message().CallResponse(request.CallerId, request.Response.Value)); break; default: throw new InvalidOperationException("Invalid response. Client can only send Accepted and Denied."); } _pendingCallRequests.Remove(request); }