Beispiel #1
0
        public Guid SetActiveVirtualMachineForUser(Guid userId, Guid vmId, string connectionId, IEnumerable <Guid> teamIds)
        {
            var activeVm = new ActiveVirtualMachine(vmId, connectionId, teamIds);

            return(_activeVirtualMachines.AddOrUpdate(userId, activeVm, (userId, v) =>
            {
                return activeVm;
            }).VmId);
        }
Beispiel #2
0
        public ActiveVirtualMachine UnsetActiveVirtualMachineForUser(Guid userId, string connectionId)
        {
            // Only remove if connectionId matches previous
            // This avoids unsetting when a background tab gets closed/disconnected
            if (_activeVirtualMachines.TryGetValue(userId, out ActiveVirtualMachine currentVm))
            {
                var activeVm   = new ActiveVirtualMachine(currentVm.VmId, connectionId, currentVm.TeamIds);
                var entry      = new KeyValuePair <Guid, ActiveVirtualMachine>(userId, activeVm);
                var collection = (ICollection <KeyValuePair <Guid, ActiveVirtualMachine> >)_activeVirtualMachines;

                if (collection.Remove(entry))
                {
                    return(activeVm);
                }
            }

            return(null);
        }