Пример #1
0
        public ActionResult PostTweet(string tweetText)
        {
            if (string.IsNullOrEmpty(tweetText))
            {
                logger.Error("Null or empty string for post stt");
                TempData["Error"] = "Null or empty string for post stt";
                return(RedirectToAction("Index"));
            }
            else
            {
                TweetOutModel tweetOut = new TweetOutModel()
                {
                    Content = tweetText
                };

                try
                {
                    TweetInModel tweetIn = TwitterService.PostTweet(tweetOut);
                    TweetsModel.Tweets.Insert(0, tweetIn);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("Twitter"))
                    {
                        logger.Error(ex.Message);
                        TempData["Error"] = ex.Message;
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="tweetText"></param>
        /// <returns></returns>
        public static TweetInModel PostTweet(TweetOutModel outTweet)
        {
            if (outTweet == null)
            {
                throw new ArgumentNullException("outTweet");
            }
            if (string.IsNullOrEmpty(outTweet.Content))
            {
                throw new ArgumentException("PostTweet, text to post can not null or empty");
            }

            string resourceUrl       = "https://api.twitter.com/1.1/statuses/update.json";
            var    requestParameters = new Dictionary <string, string>();

            requestParameters.Add("status", (outTweet.Content));

            var request  = helper.CreateRequest(resourceUrl, HttpMethod.Post, requestParameters);
            var response = helper.GetResponse(request);

            if (response.Contains("error"))
            {
                dynamic    error      = JsonConvert.DeserializeObject(response);
                ErrorModel errorModel = new ErrorModel();

                foreach (var item in error.errors)
                {
                    errorModel.Code    = ((dynamic)item).code;
                    errorModel.Message = ((dynamic)item).message;
                }

                throw new HttpException("Twitter error return: " + errorModel.Message);
            }

            dynamic tweetIn = JsonConvert.DeserializeObject(response);

            TweetInModel model = ConvertToTweetModel(tweetIn);

            return(model);
        }