public async Task SaveUser(TweetUser user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            var key = GetUserKey(user.Id);

            var contains = await redis.Client.ContainsRecord <TweetUser>(key).ConfigureAwait(false);

            if (!contains)
            {
                log.LogDebug("User doesn't exist - creating new");
                key.AddIndex(new IndexKey(this, AllUserTag, false));
            }
            else
            {
                InvalidateUser(user.Id);
            }

            await redis.Client.AddRecord(key, user).ConfigureAwait(false);

            cache.Set(user.Id.ToString(), user, new MemoryCacheEntryOptions()
            {
                SlidingExpiration = TimeSpan.FromMinutes(1)
            });
        }
Beispiel #2
0
        protected ObservableCollection <User> BuildUserInfoCollection(JToken userJsonToken)
        {
            ObservableCollection <User> userResult = new ObservableCollection <User>();
            JArray jsonToken = new JArray(userJsonToken);

            foreach (var jsonItem in jsonToken)
            {
                foreach (var jItem in jsonItem)
                {
                    TweetUser userHold = jItem.ToObject <TweetUser>();
                    User      userItem = new User();
                    userItem.UserName        = userHold.name.ToString();
                    userItem.TwitterID       = userHold.id_str;
                    userItem.ScreenName      = userHold.screen_name;
                    userItem.CreateDate      = userHold.created_at;
                    userItem.UserDescription = userHold.description;
                    userItem.FriendCount     = userHold.friends_count;
                    userItem.FollowerCount   = userHold.followers_count;
                    userItem.ProfileImage    = new BitmapImage(new Uri(userHold.profile_image_url));
                    userItem.ProfileImageUrl = userHold.profile_image_url;
                    userItem.Verified        = userHold.verified;
                    userItem.ProtectedTweet  = userHold._protected;

                    userResult.Add(userItem);
                }
            }

            return(userResult);
        }
Beispiel #3
0
 public void Setup()
 {
     tweetuser = new TweetUser();
     instance  = CreateUserItem();
 }
        public async Task SaveUser(IUser user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            var idText = user.Id.ToString();

            if (cache.TryGetValue(idText, out TweetUser data))
            {
                return;
            }

            data = new TweetUser();
            var cached = cache.GetOrCreate(
                idText,
                cacheEntry =>
            {
                cacheEntry.SlidingExpiration = TimeSpan.FromMinutes(1);
                return(data);
            });

            if (cached != data)
            {
                return;
            }

            data.Location       = user.Location;
            data.CreatedAt      = user.CreatedAt;
            data.DefaultProfile = user.DefaultProfile;
            data.Description    = user.Description;

            data.GeoEnabled        = user.GeoEnabled;
            data.Url               = user.Url;
            data.Language          = user.Language.ToString();
            data.FollowersCount    = user.FollowersCount;
            data.Following         = user.Following;
            data.FriendsCount      = user.FriendsCount;
            data.Verified          = user.Verified;
            data.Notifications     = user.Notifications;
            data.FollowRequestSent = user.FollowRequestSent;
            data.ProfileImageUrl   = user.ProfileImageUrl;
            data.ListedCount       = user.ListedCount;
            data.UtcOffset         = user.UtcOffset;
            data.TimeZone          = user.TimeZone;
            data.Name              = user.Name;
            data.Protected         = user.Protected;
            data.Id            = user.Id;
            data.StatusesCount = user.StatusesCount;

            var key = GetUserKey(user.Id);

            key.AddIndex(new IndexKey(this, AllUserTag, false));

            var contains = await redis.Client.ContainsRecord <TweetUser>(key).ConfigureAwait(false);

            if (!contains)
            {
                await redis.Client.AddRecord(key, data).ConfigureAwait(false);
            }
        }
Beispiel #5
0
 void OnGetMyTwitterInfo(bool success, string response)
 {
     myTwitterInfo = JsonUtility.FromJson <TweetUser> (response);
 }