Esempio n. 1
0
        public Option <IGuildUser> Get(ulong userId, ulong guildId)
        {
            var user = (IGuildUser)_client.GetGuild(guildId).GetUser(userId);

            if (user != null)
            {
                return(Option.Some(user));
            }
            var userM = _cacheService.Get <IGuildUser>(CacheId.GetGuildUser(userId, guildId));

            return(userM);
        }
Esempio n. 2
0
        public async Task <Option <IGuildUser> > GetOrSetAndGet(ulong userId, ulong guildId)
        {
            var user = this.Get(userId, guildId);

            if (user.HasValue)
            {
                return(user);
            }
            // Do rest request
            var userResp = await _restClient.GetGuildUserAsync(guildId, userId).ConfigureAwait(false);

            if (userResp == null)
            {
                return(Option.None <IGuildUser>());
            }
            // Otherwise set cache
            _cacheService.Set(CacheId.GetGuildUser(userId, guildId), userResp, TimeSpan.FromMinutes(_USER_TTL_MINS));
            return(Option.Some <IGuildUser>(userResp));
        }