public async Task RegisterWorkstationInfoAsync(IRemoteAppConnection remoteAppConnection, WorkstationInfoDto workstationInfoDto) { if (workstationInfoDto == null) { throw new ArgumentNullException(nameof(workstationInfoDto)); } _workstationConnections.AddOrUpdate(workstationInfoDto.Id, remoteAppConnection, (id, oldConnection) => { return(remoteAppConnection); }); if (await _workstationService.ExistAsync(w => w.Id == workstationInfoDto.Id)) { // Workstation exists, update information await _workstationService.UpdateWorkstationInfoAsync(workstationInfoDto); } else { // Workstation does not exist or name + domain was changed, create new await _workstationService.AddWorkstationAsync(workstationInfoDto); _logger.LogInformation($"New workstation {workstationInfoDto.MachineName} was added."); } await UpdateProximitySettingsAsync(workstationInfoDto.Id, await _workstationService.GetProximitySettingsAsync(workstationInfoDto.Id)); await UpdateRfidStateAsync(workstationInfoDto.Id, await _workstationService.GetRfidStateAsync(workstationInfoDto.Id)); }
// device connected to the workstation, adding it to the list of the connected devices // overwrite if already exists public void OnDeviceConnected(string workstationId, IRemoteAppConnection appConnection) { //_appConnections.AddOrUpdate(workstationId, new RemoteDeviceDescription(appConnection), (conn, old) => //{ // return new RemoteDeviceDescription(appConnection); //}); _appConnections.TryAdd(workstationId, new RemoteDeviceDescription(appConnection)); }
public RemoteDeviceDescription(IRemoteAppConnection appConnection) { AppConnection = appConnection; }
// AppHub connected public void OnAppHubConnected(string workstationId, IRemoteAppConnection appConnection) { }
// Device connected to the host (called by AppHub) public void OnDeviceConnected(string deviceId, string workstationId, IRemoteAppConnection appConnection) { GetDeviceRemoteConnections(deviceId).OnDeviceConnected(workstationId, appConnection); }