private async Task <List <AdvancedTweet> > GetTimelineByUrl(string requestUrl)
        {
            OAuthClient         client   = new OAuthClient(accessToken);
            HttpResponseMessage response = new HttpResponseMessage();

            try
            {
                response = await client.GetAsync(requestUrl);
            }
            catch (Exception ex)
            {
                throw new Exception("ネットワークエラーでタイムラインを取得できません", ex);
            }

            if (response.IsSuccessStatusCode)
            {
                var json = await response.Content.ReadAsStringAsync();

                return(MyJsonConverter.DeserializeTweets(json, accessToken));
            }
            else
            {
                throw new Exception("レスポンスメッセージのStatusCodeがSuccessではありません。");
            }
        }
        public async Task <AdvancedTweet> GetTweet(string id)
        {
            var                 client = new OAuthClient(accessToken);
            AdvancedTweet       tweet;
            HttpResponseMessage res = new HttpResponseMessage();

            try
            {
                res = await client.GetAsync("https://api.twitter.com/1.1/statuses/show.json?id=" + id);

                tweet = MyJsonConverter.DeserializeStreamTweet(res.Content.ToString(), accessToken);
                return(tweet);
            }
            catch (Exception ex)
            {
                try
                {
                    var errors = JsonConvert.DeserializeObject <Errors>(res.Content.ToString());
                    var error  = errors.errors[0];
                    throw new Exception("Error " + error.code + ":" + error.message);
                }
                catch (Exception)
                {
                    throw new Exception("ツイートの取得に失敗しました。", ex);
                }
            }
        }
        public async Task <ObservableCollection <UserAccessToken> > GetUserListFromTweets(string requestUrl)
        {
            OAuthClient         client   = new OAuthClient(accessToken);
            HttpResponseMessage response = new HttpResponseMessage();
            ObservableCollection <UserAccessToken> userAccessTokens = new ObservableCollection <UserAccessToken>();

            try
            {
                response = await client.GetAsync(requestUrl);
            }
            catch (Exception ex)
            {
                var dialog = new MessageDialog(ex.Message, "ユーザー一覧を取得できません");
                await dialog.ShowAsync();
            }

            if (response.IsSuccessStatusCode)
            {
                var json = await response.Content.ReadAsStringAsync();

                List <AdvancedTweet> tweets = MyJsonConverter.DeserializeTweets(json, accessToken);
                foreach (var tweet in tweets)
                {
                    var item = new UserAccessToken(accessToken, tweet.source.user);
                    userAccessTokens.Add(item);
                }
                return(userAccessTokens);
            }
            else
            {
                var dialog = new MessageDialog(response.ReasonPhrase, "レスポンスメッセージのStatusCodeがSuccessではありません。");
                await dialog.ShowAsync();
            }
            return(null);
        }
 public async Task GetStream(Action <AdvancedTweet> fetchAction)
 {
     OAuthClient client = new OAuthClient(accessToken);
     await client.GetStreamAsync("https://userstream.twitter.com/1.1/user.json", (json) =>
     {
         AdvancedTweet advancedTweet;
         try
         {
             advancedTweet = MyJsonConverter.DeserializeStreamTweet(json, accessToken);
         }
         catch (Exception ex)
         {
             throw new Exception("また知らない形のjsonが投げられたみたい。:" + json, ex);
         }
         fetchAction(advancedTweet);
     });
 }
        public async Task <List <AdvancedTweet> > GetSearchResult(int count, AdvancedTweet oldTweet, string word)
        {
            var requestUrl = "https://api.twitter.com/1.1/search/tweets.json";

            word        = Uri.EscapeUriString(word);
            requestUrl += "?q=" + word;
            requestUrl += "&count=" + count.ToString();
            if (oldTweet != null)
            {
                if (oldTweet.state == AdvancedTweet.States.Retweeted)
                {
                    oldTweet = new AdvancedTweet(oldTweet.source, accessToken);
                }
                requestUrl += "&max_id=" + oldTweet.tweet.id_str;
            }
            OAuthClient         client   = new OAuthClient(accessToken);
            HttpResponseMessage response = new HttpResponseMessage();

            try
            {
                response = await client.GetAsync(requestUrl);
            }
            catch (Exception ex)
            {
                throw new Exception("ネットワークエラーでタイムラインを取得できません", ex);
            }

            if (response.IsSuccessStatusCode)
            {
                var json = await response.Content.ReadAsStringAsync();

                return(MyJsonConverter.DeserializeSearchResult(json, accessToken));
            }
            else
            {
                throw new Exception("レスポンスメッセージのStatusCodeがSuccessではありません。");
            }
        }
Example #6
0
        public void Start()
        {
            /*
             * Start up Reflection
             */

            // create two objects
            Clerk c = new Clerk("Mia", 1988, new string[2] {
                "EASY", "Reception"
            });
            Manager m = new Manager("Per", 1964);

            m.Employees.Add(c);
            m.Employees.Add(new Manager("Michael", 1955));

            // printout Clerk
            Console.WriteLine();
            Console.WriteLine("Start with clerk");
            Console.WriteLine();
            Console.WriteLine(c);
            TryReflection(c);

            // printout Manager
            Console.WriteLine();
            Console.WriteLine("Then comes manager");
            Console.WriteLine();
            Console.WriteLine(m);
            TryReflection(m);


            /*
             * Serializing
             */
            Console.WriteLine();
            Console.WriteLine(" ===> Serializing <===");
            Console.WriteLine();

            // class with simple property types
            TestVarClass tvc             = new TestVarClass(2000000000, -32000, 5000000000, 255, 't', true, "peter");
            string       jsonSimpleTypes = JsonConvert.SerializeObject(tvc);

            Console.WriteLine(jsonSimpleTypes);

            string jsonSimpleTypes2 = MyJsonConverter.Serialize(tvc);

            Console.WriteLine(jsonSimpleTypes2);

            // class with object property type
            AnotherTestClass atc = new AnotherTestClass()
            {
                InnerClass = new TestVarClass(30, 30, 30, 30, 'r', false, "anewObject")
            };
            string jsonObjectTypes = JsonConvert.SerializeObject(atc);

            Console.WriteLine(jsonObjectTypes);

            string jsonObjectTypes2 = MyJsonConverter.Serialize(atc);

            Console.WriteLine(jsonObjectTypes2);

            // Class with List of strings - Clerk
            String jsonListStrings = JsonConvert.SerializeObject(c);

            Console.WriteLine(jsonListStrings);
            Console.WriteLine(MyJsonConverter.Serialize(c));

            // Class with List of objects - Manager
            String jsonListObjects = JsonConvert.SerializeObject(m);

            Console.WriteLine(jsonListObjects);
            Console.WriteLine(MyJsonConverter.Serialize(m));

            // Class with list of lists
            TestListInListClass tc = new TestListInListClass();

            tc.ListClerks.Add(new List <Clerk>()
            {
                new Clerk("df", 1999, new string[] { "hej", "davs" })
            });
            tc.ListClerks.Add(new List <Clerk>()
            {
                new Clerk("dif", 2011, new string[] { "hej", "davs" })
            });
            tc.ListClerks.Add(new List <Clerk>()
            {
                new Clerk("fd", 2001, new string[] { "hej", "davs" })
            });

            Console.WriteLine(JsonConvert.SerializeObject(tc));
            Console.WriteLine(MyJsonConverter.Serialize(tc));



            /*
             * Deserializing
             */
            Console.WriteLine();
            Console.WriteLine(" ===> Deserializing <===");
            Console.WriteLine();

            // Simple types as properties
            TestVarClass tc2 = MyJsonConverter.Deserialize <TestVarClass>(jsonSimpleTypes);

            Console.WriteLine(tc2);

            // Object type as property
            AnotherTestClass atc2 = MyJsonConverter.Deserialize <AnotherTestClass>(jsonObjectTypes);

            Console.WriteLine(atc2);


            // clerk with list of strings
            //Clerk newClerk = MyJsonConverter.Deserialize<Clerk>(jsonListStrings);
            //Console.WriteLine("Deserialized clerk: " + newClerk);

            // Manager with list of objects
            //Manager newManager = MyJsonConverter.Deserialize<Manager>(jsonListObjects);
            //Console.WriteLine("Deserialized Manager: " + newManager);
        }