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