public ChatUser GetOrCreateChatUser(string displayName, ChatUser chatUser = null)
 {
     lock (_userCreationLock)
     {
         ChatUser userFromDb = _repository.Single(ChatUserPolicy.ByDisplayName(displayName));
         userFromDb = userFromDb ?? _repository.Create(chatUser);
         return(userFromDb);
     }
 }
        public bool UserExists(string username)
        {
            if (_activeChatUsers.Any(x => x.DisplayName.Equals(username, StringComparison.InvariantCultureIgnoreCase)) ||
                _repository.Single(ChatUserPolicy.ByDisplayName(username)) != null)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
        public bool RemoveCurrencyFrom(string userName, int tokensToRemove)
        {
            if (!_chatUserCollection.UserHasAtLeast(userName, tokensToRemove))
            {
                return(false);
            }

            _chatUserCollection.UpdateSpecificChatters(x => x.Tokens -= tokensToRemove,
                                                       ChatUserPolicy.ByDisplayName(userName));
            return(true);
        }
Ejemplo n.º 4
0
        public void AddCurrencyTo(IEnumerable <string> listOfNames, int tokensToAdd)
        {
            _chatUserCollection.UpdateSpecificChatters(CappedTokenAdding, ChatUserPolicy.ByDisplayName(listOfNames));

            void CappedTokenAdding(ChatUser chatUser)
            {
                checked
                {
                    chatUser.Tokens += tokensToAdd;
                }
            }
        }
Ejemplo n.º 5
0
        protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs)
        {
            string userToCheck = eventArgs?.ChatUser?.DisplayName;

            try
            {
                ChatUser chatUser = Repository.Single(ChatUserPolicy.ByDisplayName(userToCheck));

                chatClient.SendMessage($"User {userToCheck} has {chatUser?.Tokens ?? 0} tokens!");
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"Failed to look up coins for {userToCheck}.");
            }
        }
Ejemplo n.º 6
0
        public override void Process(IChatClient chatClient, CommandReceivedEventArgs eventArgs)
        {
            try
            {
                string userToCheck   = eventArgs.ChatUser.DisplayName;
                string specifiedUser = eventArgs.Arguments?.FirstOrDefault()?.NoAt();

                if (specifiedUser != null)
                {
                    userToCheck = specifiedUser;
                }

                ChatUser chatUser = _repository.Single(ChatUserPolicy.ByDisplayName(userToCheck));

                chatClient.SendMessage($"{userToCheck} has {chatUser.Tokens} tokens!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 7
0
        protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs)
        {
            string userToCheck = eventArgs?.ChatUser?.DisplayName;

            try
            {
                string specifiedUser = eventArgs?.Arguments?.FirstOrDefault()?.NoAt();

                if (specifiedUser != null)
                {
                    userToCheck = specifiedUser;
                }

                ChatUser chatUser = Repository.Single(ChatUserPolicy.ByDisplayName(userToCheck));

                chatClient.SendMessage($"{userToCheck} has {chatUser?.Tokens ?? 0} tokens!");
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"Failed to look up coins for {userToCheck}.");
            }
        }
Ejemplo n.º 8
0
 public bool UserExists(string username)
 {
     return(_activeChatUsers.Any(x => x.EqualsIns(username)) ||
            _repository.Single(ChatUserPolicy.ByDisplayName(username)) != null);
 }
Ejemplo n.º 9
0
 public void UpdateEachChatter(Action <ChatUser> updateToApply)
 {
     UpdateSpecificChatters(updateToApply, ChatUserPolicy.ByDisplayName(_activeChatUsers));
 }
Ejemplo n.º 10
0
 public void AddCurrencyTo(List <string> listOfNames, int tokensToAdd)
 {
     _chatUserCollection.UpdateSpecificChatters(x => x.Tokens += tokensToAdd, ChatUserPolicy.ByDisplayName(listOfNames));
 }
Ejemplo n.º 11
0
 public void UpdateEachChatter(Action <ChatUser> updateToApply) =>
 UpdateSpecificChatters(updateToApply, ChatUserPolicy.All());