private void Clear_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show(Translation.Instance.HistoryViewer_ConfirmClear, "Squiggle", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         AsyncInvoke(() =>
         {
             var historyManager = new HistoryManagerFactory().CreateInstance();
             historyManager.ClearChatHistory();
         }, () => results.ItemsSource = null);
     }
 }
 private void Delete_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show(Translation.Instance.HistoryViewer_ConfirmDelete, "Squiggle", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         IEnumerable <string> sessionIds = results.SelectedItems.Cast <Result>().Select(r => r.Id).ToList();
         AsyncInvoke(() =>
         {
             var historyManager = new HistoryManagerFactory().CreateInstance();
             historyManager.DeleteSessions(sessionIds);
         },
                     lastSearch);
     }
 }
Пример #3
0
        void SearchUpdates(DateTime?from, DateTime?to)
        {
            var historyManager = new HistoryManagerFactory().CreateInstance();
            var updates        = historyManager.GetStatusUpdates(new StatusCriteria()
            {
                From = from.HasValue ? from.Value.ToUniversalTime() : from,
                To   = to.HasValue ? to.Value.ToUniversalTime() : to,
            })
                                 .Select(update => new Result(update))
                                 .ToList();

            Dispatcher.Invoke(() =>
            {
                results.ItemsSource = updates;
            });
        }
Пример #4
0
        public ConversationViewer(string sessionId) : this()
        {
            this.SessionId = sessionId;

            var     historyManager = new HistoryManagerFactory().CreateInstance();
            Session session        = historyManager.GetSession(sessionId);

            messages.ItemsSource = session.Events
                                   .OrderBy(e => e.Stamp)
                                   .Select(e => new
            {
                Stamp = e.Stamp.ToLocalTime(),
                e.SenderName,
                e.Type,
                e.Data
            })
                                   .ToList();
        }
        void SearchSessions(DateTime?from, DateTime?to, string message)
        {
            var historyManager = new HistoryManagerFactory().CreateInstance();
            var sessions       = historyManager.GetSessions(new SessionCriteria()
            {
                From        = from.HasValue ? from.Value.ToUniversalTime() : from,
                To          = to.HasValue ? to.Value.ToUniversalTime() : to,
                Text        = message.Length == 0 ? null : message,
                Participant = SquiggleContext.ChatClient.CurrentUser.Id
            })
                                 .Select(session => new Result(session))
                                 .ToList();

            Dispatcher.Invoke(() =>
            {
                results.ItemsSource = sessions;
            });
        }
Пример #6
0
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            if (App.RunInBackground)
            {
                this.Hide();
            }

            chatWindows = new ChatWindowCollection();

            var settingsProvider      = SettingsProvider.Current;
            SquiggleSettings settings = settingsProvider.Settings;

            settings.ContactSettings.ContactGroups.FlushItems();
            settingsProvider.Save();

            HistoryManager history = new HistoryManagerFactory().CreateInstance();

            context = new SquiggleContextFactory(new PluginLoaderFactory(),
                                                 history,
                                                 this,
                                                 settings.ConnectionSettings.ClientID).CreateInstance();
            context.PluginLoader.LoadAll(context);

            SetupControls();

            TrayPopup.Instance.Enabled  = SettingsProvider.Current.Settings.GeneralSettings.ShowPopups;
            AudioAlert.Instance.Enabled = SettingsProvider.Current.Settings.GeneralSettings.AudioAlerts;

            chatControl.SignIn.LoadSettings(settings);

            var client = context.ChatClient;

            client.EnableLogging = settings.GeneralSettings.EnableStatusLogging;
            client.ChatStarted  += client_ChatStarted;
            client.BuddyUpdated += client_BuddyUpdated;
            client.BuddyOnline  += client_BuddyOnline;
            client.BuddyOffline += client_BuddyOffline;

            clientViewModel = new ClientViewModel(client);
            clientViewModel.CancelUpdateCommand = new RelayCommand <object>(CancelUpdateCommand_Execute);
            DataContext = chatControl.ChatContext = clientViewModel;

            autoSignout = new NetworkSignout(this.Dispatcher, options => SignIn(options, byUser: false), () => SignOut(byUser: false));

            var singleSignOn = chatControl.SignIn.lblSingleSignOn.Visibility == Visibility.Visible;

            if (singleSignOn || (settings.PersonalSettings.RememberMe && settings.PersonalSettings.AutoSignMeIn))
            {
                var signInOptions = new SignInOptions()
                {
                    Username = settings.PersonalSettings.Username,
                    Password = settings.PersonalSettings.Password,
                    Domain   = settings.PersonalSettings.Domain
                };
                await Task.Delay(5.Seconds());

                SignIn(signInOptions, false);
            }
            else if (settings.PersonalSettings.RememberMe)
            {
                chatControl.SignIn.RememberMe = true;
            }
        }