/// <summary> /// Updates a message /// </summary> /// <param name="link">link to code past</param> /// <param name="UpdateCallback">logging method</param> /// <returns>if the update success</returns> public bool Update(string link, Action<string> UpdateCallback) { var vm = new TweetItViewModel() { ShowSwith = !string.IsNullOrEmpty(AccessPin), Username = currentUser }; var tweetItWindow = new TweetItWindow { DataContext = vm, MessageBody = { MaxLength = MaximumMsgLength } }; // Checks if the user has canceled the operation if (tweetItWindow.ShowDialog() != true) { return true; } // Authenticate user and update return Authenticate(vm.UseAnotherAccount, () => Tweet(vm, link, UpdateCallback)); }
/// <summary> /// </summary> /// <param name="vm"> /// The vm. /// </param> /// <param name="link"> /// The link. /// </param> /// <param name="updateCallback"> /// The update callback. /// </param> /// <returns> /// </returns> private static bool Tweet(TweetItViewModel vm, string link, Action<string> updateCallback) { var tokens = new OAuthTokens { AccessToken = _accessToken, AccessTokenSecret = _accessSecret, ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret }; var body = string.Format("{0}\n{1}", vm.MessageBody, link); var result = TwitterStatus.Update(tokens, body).Result == RequestResult.Success; var logmsg = result ? string.Format("@{0} {1} tweeted: \n {2}", currentUser, DateTime.Now.ToShortTimeString(), body) : string.Format("Tweet failed {0}", DateTime.Now.ToShortTimeString()); updateCallback(logmsg); return result; }