private async Task ProcessReceivedMessageAsync( string topic, string messagePayload) { var payload = OpenVaspPayload.Create(messagePayload); _logger?.LogInformation( $"Received {payload.Instruction} with topic {topic} for connection {payload.ConnectionId} from {payload.SenderVaspId} to {_vaspId}"); switch (payload.Instruction) { case Instruction.Ack: await HandleAcknowledgementMessageAsync(payload); break; case Instruction.Invite: await HandleInviteMessageAsync(payload); break; case Instruction.Accept: await HandleAcceptMessageAsync(payload); break; case Instruction.Deny: await HandleDenyMessageAsync(payload); break; case Instruction.Update: await HandleUpdateMessageAsync(payload); break; case Instruction.Close: await HandleCloseMessageAsync(payload); break; default: throw new ArgumentOutOfRangeException(); } if (!_openVaspPayloads.ContainsKey(payload.EnvelopeId)) { _openVaspPayloads[payload.EnvelopeId] = payload; } }