void loginWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            // tell user call to server is completed
            SetLoading(false);

            // login failed if result is null
            ExtendedUser loggedInUser = null;

            if (null == e.Result)
            {
                txtError.Visibility = Visibility.Visible;
                return;
            }
            else
            {
                loggedInUser = e.Result as ExtendedUser;
            }

            // login successful, see if we need to save user information
            if (cbRememberMe.IsChecked == true)
            {
                ConfigurationManager.Default.SetUserSetting(_username, _password);
            }
            else
            {
                //ConfigurationManager.Default.RemoveUserSetting(_username);
                ConfigurationManager.Default.SetUserSetting(_username, null);
                ConfigurationManager.Default.LastUser = null;
            }
            //Properties.Settings.Default.Save();
            ConfigurationManager.Default.Save();

            // once we get here, hide the error message which may have been displayed in previous login attempts
            txtError.Visibility = Visibility.Hidden;

            // raise login complete event
            if (null != LoginCompleted)
            {
                LoginCompletedEventArgs args = new LoginCompletedEventArgs
                {
                    Username     = _username,
                    Password     = _password,
                    LoggedInUser = loggedInUser
                };
                LoginCompleted(this, args);
            }
        }
Example #2
0
        void ucLogin_LoginCompleted(object sender, LoginCompletedEventArgs e)
        {
            // retrieve logged in user
            ExtendedUser loggedInUser = e.LoggedInUser;

            // apply user settings after login completed
            UserSetting setting = ConfigurationManager.Default.GetUserSetting(loggedInUser.ScreenName);
            Left = setting.WindowLocation.X;
            Top = setting.WindowLocation.Y;
            Width = setting.WindowSize.Width;
            Height = setting.WindowSize.Height;
            _timerInterval = setting.RefreshTimerInterval;
            _isWebPagePreviewEnabled = setting.IsWebPagePreviewEnabled;

            // show twitter main view
            LoginView.Visibility = Visibility.Hidden;
            MainView.Visibility = Visibility.Visible;

            // init twitter application logic
            _twitter = new TwitterApp(e.Username, e.Password, loggedInUser);

            // hook up twitter app event handlers
            _twitter.TinyUrlCompleted += new TwitterApp.TinyUrlCompletedHandler(TinyUrlCompleted);
            _twitter.TwitPicCompleted += new TwitterApp.TwitPicCompletedHandler(TwitPicCompleted);
            _twitter.TweetsManager.TweetsManagerOperationCompleted += new TweetsManager.TweetsManagerCompletedHandler(TweetsManager_OperationCompleted);
            _twitter.TweetsManager.OperationError += new BaseCollectionManager<Status>.OperationErrorHandler(Twitter_OperationError);
            _twitter.RepliesManager.OperationCompleted += new BaseCollectionManager<Status>.OperationCompletedHandler(RepliesManager_OperationCompleted);
            _twitter.RepliesManager.OperationError += new BaseCollectionManager<Status>.OperationErrorHandler(Twitter_OperationError);
            _twitter.DirectMessageManager.OperationCompleted += new BaseCollectionManager<DirectMessage>.OperationCompletedHandler(DirectMessagesManager_OperationCompleted);
            _twitter.DirectMessageManager.OperationError += new BaseCollectionManager<DirectMessage>.OperationErrorHandler(Twitter_OperationError);
            _twitter.UserProfileManager.UserProfileOperationCompleted += new UserProfileManager.UserProfileOperationCompletedHandler(UserProfileOperationCompleted);
            _twitter.UserProfileManager.OperationError += new BaseManager.OperationErrorHandler(Twitter_OperationError);
            _twitter.FriendsManager.OperationCompleted += new BaseManager.OperationCompletedHandler(FriendsManager_OperationCompleted);
            _twitter.FriendsManager.OperationError += new BaseManager.OperationErrorHandler(Twitter_OperationError);
            //_twitter.SearchManager.OperationCompleted += new BaseManager.OperationCompletedHandler(SearchManager_OperationCompleted);
            //_twitter.SearchManager.OperationError += new BaseManager.OperationErrorHandler(SearchManager_OperationError);
            //_twitter.SavedSearchesManager.Initialize(
            //    ConfigurationManager.Default.SavedSearches,
            //    SearchManager_OperationCompleted,
            //    SearchManager_OperationError);
            _twitter.FavouritesManager.OperationCompleted += new BaseManager.OperationCompletedHandler(FavouritesManager_OperationCompleted);
            _twitter.FavouritesManager.OperationError += new BaseManager.OperationErrorHandler(FavouritesManager_OperationError);

            // create system tray icon
            _trayIcon = new System.Windows.Forms.NotifyIcon();
            _trayIcon.Icon = new System.Drawing.Icon(@"Images\tray.ico");
            _trayIcon.Click += new EventHandler(trayIcon_Click);
            _trayIcon.Visible = true;

            // set data context and data source
            SelectedUser = loggedInUser;
            ddpProfile.DataContext = this;
            icAllTweets.ItemsSource = AllTweets;
            icAllReplies.ItemsSource = AllReplies;
            icDirectMessages.ItemsSource = AllDirectMessages;
            icFriends.ItemsSource = AllFriends;
            icUserTweets.ItemsSource = SelectedUserTweets;
            icAllFavourites.ItemsSource = AllFavourites;
            lbFollowing.ItemsSource = AllFriends;

            // get data from twitter api
            _twitter.TweetsManager.RefreshAllAsync();
            _twitter.RepliesManager.RefreshAllAsync();
            _twitter.DirectMessageManager.RefreshAllAsync();
            _twitter.UserProfileManager.GetUserDetailsAsync(LoggedInUser.Id);
            _twitter.FriendsManager.GetFriendsAsync();
            _twitter.FavouritesManager.GetFavouritesAsync();

            // init categories manager and create tab for each categories
            CategoriesManager.Initialize(loggedInUser.ScreenName, AllTweets);
            foreach (string categoryName in CategoriesManager.GetCategoryNames())
            {
                // init tweets panel control for category
                TweetsPanelControl tweetsPanel = new TweetsPanelControl();
                tweetsPanel.ItemsSource = CategoriesManager.GetCategoryView(categoryName);
                tweetsPanel.IsShowMoreButton = Visibility.Collapsed;
                tweetsPanel.AvatarClicked += new MouseButtonEventHandler(imgAvatar_MouseDown);
                tweetsPanel.TweetTextLoaded += new RoutedEventHandler(TextBlock_Loaded);
                tweetsPanel.ReplyClicked += new RoutedEventHandler(btnReply_Click);
                tweetsPanel.DirectMessageClicked += new RoutedEventHandler(btnDirectMessage_Click);
                tweetsPanel.RetweetClicked += new RoutedEventHandler(btnRetweet_Click);
                tweetsPanel.DeleteClicked += new RoutedEventHandler(btnDelete_Click);
                tweetsPanel.FavouriteClicked += new RoutedEventHandler(cbFavourite_Click);

                // init tab for cateogry
                CategoryTabItem tab = CreateCategoryTab(categoryName, tweetsPanel);

                // add tab to tab host
                tcCategories.Items.Insert(tcCategories.Items.Count - 1, tab);
            }

            // load saved searches
            foreach (string keyword in ConfigurationManager.Default.SavedSearches)
            {
                TabItem searchTab = CreateSearch(keyword);
                tcSearches.Items.Add(searchTab);
                tcSearches.SelectedItem = searchTab;
            }
            tcSearches.SelectedIndex = 0;

            // init refresh timer
            _timer  = new Timer(
                new TimerCallback(RefreshTimer),
                null,
                TimeSpan.FromSeconds((double)_timerInterval),
                TimeSpan.FromSeconds((double)_timerInterval));

            // init notification window
            _notififcation = new AlertWindow();

            // init url preview control
            _browser = new WebPagePreviewControl();
            _browser.Owner = this;

            // make sure unhandled exceptions will not crash app
            Application.Current.Dispatcher.UnhandledException += new DispatcherUnhandledExceptionEventHandler(Dispatcher_UnhandledException);
        }
        void loginWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            // tell user call to server is completed
            SetLoading(false);

            // login failed if result is null
            ExtendedUser loggedInUser = null;
            if (null == e.Result)
            {
                txtError.Visibility = Visibility.Visible;
                return;
            }
            else
            {
                loggedInUser = e.Result as ExtendedUser;
            }

            // login successful, see if we need to save user information
            if (cbRememberMe.IsChecked == true)
            {
                ConfigurationManager.Default.SetUserSetting(_username, _password);
            }
            else
            {
                //ConfigurationManager.Default.RemoveUserSetting(_username);
                ConfigurationManager.Default.SetUserSetting(_username, null);
                ConfigurationManager.Default.LastUser = null;
            }
            //Properties.Settings.Default.Save();
            ConfigurationManager.Default.Save();

            // once we get here, hide the error message which may have been displayed in previous login attempts
            txtError.Visibility = Visibility.Hidden;

            // raise login complete event
            if (null != LoginCompleted)
            {
                LoginCompletedEventArgs args = new LoginCompletedEventArgs
                {
                    Username = _username,
                    Password = _password,
                    LoggedInUser = loggedInUser
                };
                LoginCompleted(this, args);
            }
        }