/// <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;
        }