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));
        }
예제 #2
0
 // 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));
 }
예제 #3
0
 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);
 }