public async Task SendDistressSignal(ClientModels.SendDistressSignalMessage message) { var player = _playerService.GetPlayerInfoByApiKey(message.ApiKey); DistressSignal signal = new DistressSignal() { Player = player, SignalLocation = _mapper.Map <ClientModels.Location, Location>(message.Location), Time = DateTime.UtcNow, }; _distressSignalService.AddDistressSignal(signal); var newMessage = new ClientModels.DistressSignalReceivedMessage() { Location = _mapper.Map <Location, ClientModels.Location>((Location)signal.SignalLocation), PlayerName = signal.Player.Name, }; var inRange = await _playerService.GetPlayersInRangeAsync(signal.SignalLocation, 100); if (inRange != null) { foreach (var contact in inRange) { if (contact.ApiKey != signal.Player.ApiKey) // Avoid sending the distress signal to the player who sent it { await Clients.Client(contact.ConnectionId).SendAsync("DistressSignalReceived", newMessage); } } } await Clients.Caller.SendAsync("DistressSignalCreated", newMessage); }
private void _serverService_DistressSignalReceived(object sender, DistressSignal distressSignal) { this.Dispatcher.Invoke(() => { _model.ReceivedDistressSignals.Add(distressSignal); }); }
private void serverService_DistressSignalCreated(object sender, DistressSignal e) { this.Dispatcher.Invoke(() => { _model.SentDistressSignals.Add(e); }); }
public void AddDistressSignal(DistressSignal distressSignal) { _distressSignals.Add(distressSignal); if (distressSignal.Player.DistressSignals == null) { distressSignal.Player.DistressSignals = new List <IDistressSignal>(); } distressSignal.Player.DistressSignals.ToList().Add(distressSignal); }
private void _server_DistressSignalCreated(object sender, DistressSignalReceivedMessage e) { var ds = new DistressSignal() { Player = _playerState.PlayerInfo, SignalLocation = e.Location, Time = DateTime.Now, }; DistressSignalCreated?.Invoke(this, ds); }
private void server_OnDistressSignal(object sender, DistressSignalReceivedMessage e) { var ds = new DistressSignal() { Player = new Player { Name = e.PlayerName }, SignalLocation = e.Location, Time = DateTime.Now, }; _playerState.ReceivedDistressSignals.Add(ds); DistressSignalReceived?.Invoke(this, ds); }