//Available on all HTTP Verbs (GET, POST, PUT, DELETE, etc) and endpoints JSON, XMl, JSV, etc
        public object Any(TwitterFollowers request)
        {
            if (request.UserId.IsNullOrEmpty() && request.ScreenName.IsNullOrEmpty())
            {
                throw new ArgumentNullException("UserId or UserName is required");
            }

            var hasId = !request.UserId.IsNullOrEmpty();

            //Create a unique cache key for this request
            var cacheKey = "cache:User:"******"Id:" + request.UserId : "Name:" + request.ScreenName)
                           + ":skip:" + request.Skip
                           + ":followers";

            //This caches and returns the most optimal result the browser can handle, e.g.
            //If browser requests json and accepts deflate - it returns a deflated json payload from cache
            return(base.Request.ToOptimizedResultUsingCache(Cache, cacheKey, () =>
                                                            new TwitterFollowersResponse
            {
                Results = hasId
                        ? AuthTwitterGateway.GetFollowers(ulong.Parse(request.UserId), request.Skip)
                        : AuthTwitterGateway.GetFollowers(request.ScreenName, request.Skip)
            }));
        }
Esempio n. 2
0
        protected override object Run(TwitterTweets request)
        {
            var cacheKey = "cache:Tweet:" + request.ScreenName + ":tweets"
                           + (request.Take.HasValue ? ":take:" + request.Take : "")
                           + (!request.SinceId.IsNullOrEmpty() ? ":sinceid:" + request.SinceId : "")
                           + (!request.MaxId.IsNullOrEmpty() ? ":maxid:" + request.MaxId : "");

            //This caches and returns the most optimal result the browser can handle, e.g.
            //If the browser requests json and accepts deflate - it returns a deflated json payload from cache
            return(base.RequestContext.ToOptimizedResultUsingCache(Cache, cacheKey, () =>
                                                                   new TwitterTweetsResponse {
                Results = AuthTwitterGateway.GetTweets(
                    request.ScreenName, request.SinceId, request.MaxId, request.Take)
            }));
        }
        public object Any(TwitterDirectMessages request)
        {
            var cacheKey = "cache:DirectMessage:" + base.UserSession.TwitterScreenName + ":dms"
                           + (request.Take.HasValue ? ":take:" + request.Take : "")
                           + (!request.SinceId.IsNullOrEmpty() ? ":sinceid:" + request.SinceId : "")
                           + (!request.MaxId.IsNullOrEmpty() ? ":maxid:" + request.MaxId : "");

            //This caches and returns the most optimal result the browser can handle, e.g.
            //If the browser requests json and accepts deflate - it returns a deflated json payload from cache
            return(base.RequestContext.ToOptimizedResultUsingCache(Cache, cacheKey, () =>
                                                                   new TwitterDirectMessagesResponse {
                Results = AuthTwitterGateway.GetDirectMessages(
                    request.SinceId, request.MaxId, request.Take)
            }));
        }
        //Available on all HTTP Verbs (GET,POST,PUT,DELETE,etc) and endpoints JSON,XMl,JSV,etc
        public object Any(TwitterUsers request)
        {
            var userIds   = request.UserIds ?? new List <string>();
            var userNames = request.ScreenNames ?? new List <string>();

            var results = new List <TwitterUser>();

            if (userIds.Count > 0)
            {
                results.AddRange(AuthTwitterGateway.DownloadUsersByIds(userIds));
            }
            if (userNames.Count > 0)
            {
                results.AddRange(AuthTwitterGateway.DownloadTwitterUsersByNames(userNames));
            }

            return(new TwitterUsersResponse {
                Results = results
            });
        }