Esempio n. 1
0
        protected virtual void HandleLockStatusChange(bool isHeldNew)
        {
#if DEBUG
            var status = isHeldNew ? "Active" : "Standby";
            _logger.LogDebug($"[Debug] status is ({status}) at {DateTime.Now.ToString("hh:mm:ss")}");
#endif

            if (lastIsHeld == isHeldNew)
            {
                return;
            }
            else
            {
                lastIsHeld = isHeldNew;
            }


            if (LeaderChanged != null)
            {
                LeaderChangedEventArgs args = new LeaderChangedEventArgs(lastIsHeld);
                foreach (EventHandler <LeaderChangedEventArgs> handler in LeaderChanged.GetInvocationList())
                {
                    try
                    {
                        handler(this, args);
                    }
                    catch (Exception)
                    {
                        //Log
                    }
                }
            }
        }
Esempio n. 2
0
        private IEnumerable <IClientEvent> WithLeaderCheck(Func <IEnumerable <IClientEvent> > func)
        {
            var previousLeader = LeaderUserId;

            foreach (var @event in func())
            {
                yield return(@event);
            }
            var currentLeader = LeaderUserId;

            if (previousLeader == currentLeader)
            {
                yield break;
            }
            var leaderChanged = new LeaderChanged(_state.Id, currentLeader);

            yield return(leaderChanged);
        }
Esempio n. 3
0
        protected virtual void OnLeaderChanged(Character leader)
        {
            PartyHandler.SendPartyLeaderUpdateMessage(Clients, this, leader);

            LeaderChanged?.Invoke(this, leader);
        }