protected override void ProcessResponse(Envelope envelope) { if (envelope.Message.GetType() == typeof(LoginRequest)) { LoginRequest received = (LoginRequest)envelope.Message; ProcessInfo newInfo = new ProcessInfo { EndPoint = envelope.Address, Label = received.ProcessLabel, Type = received.ProcessType }; ProcessInfo procResponse = OnLoginUpdated?.Invoke(newInfo); LoginReply reply = new LoginReply(envelope.ConvId) { Success = (procResponse != null && procResponse?.Status == ProcessInfo.StatusCode.Registered) }; reply.Note = (reply.Success) ? "Granted!" : "Bad request"; reply.ProcessInfo = procResponse; Envelope env = new Envelope(envelope.Address, reply); SendMessage(env); } else { Logger.Info("Received unexpected message: " + envelope.Message); } WaitingForReply = false; AllowInboundMessages = false; }
protected override void ProcessResponse(Envelope envelope) { if (envelope?.Message != null && envelope.Message?.GetType() == typeof(LoginReply)) { LoginReply replyMessage = (LoginReply)envelope.Message; Logger.Info("Received Login response: " + replyMessage.Note); OnLoginUpdated?.Invoke(ProcessInfo.DeepCopy(replyMessage.ProcessInfo)); WaitingForReply = false; } else if (envelope != null) { Logger.Info("Received unexpected message: " + envelope.Message?.ToString()); } else { Logger.Info("Received completely null envelope"); } }