public bool HandleRegistration(UnregisteredConnection unregisteredConnection, Registration message)
{
Logger.Info($"Handling the registration of connection {unregisteredConnection}");
RegisteredClient registeredClient;
if (Clients.ContainsKey(message.UserId))
{
if (Clients.TryGetValue(message.UserId, out registeredClient))
{
Logger.Debug($"Client identified. {registeredClient}");
}
else
{
Logger.Warn("Error in retrieving client.");
return false;
}
}
else
{
registeredClient = new RegisteredClient
{
UserId = message.UserId,
Domain = Name,
Name = message.Name,
Avatar = Clients.Count + 1
};
registeredClient.OnConnected += RegisteredClient_OnConnected;
registeredClient.OnDisconnected += RegisteredClient_OnDisconnected;
registeredClient.OnGetPeerList += RegisteredClient_OnGetPeerList;
registeredClient.OnRelayMessage += RegisteredClient_OnRelayMessage;
if (Clients.TryAdd(registeredClient.UserId, registeredClient))
{
Logger.Info($"Registered new client. {registeredClient}");
}
else
{
Logger.Warn("Could not register new client.");
return false;
}
}
registeredClient.SetActiveConnection(unregisteredConnection, message);
return true;
}