/// <summary> /// Copies the click. /// </summary> /// <param name="item">The history item.</param> private void CopyClick(PlatformHistoryItem item) { const string format = @"Timestamp: {0} Tenant Id: {1} Tenant Name: {2} Package Id: {3} Package Name: {4} Operation: {5} Machine: {6} User: {7} Process: {8} Arguments: {9} Exception: {10}"; RetryHandler.Retry(() => { Clipboard.SetData(DataFormats.Text, string.Format(format, item.Timestamp, item.TenantId, item.TenantName, item.PackageId.ToString("B"), item.PackageName, item.Operation, item.Machine, item.User, item.Process, item.Arguments, item.Exception)); PluginSettings.Channel.SendMessage(new StatusTextMessage(@"Data copied to clipboard...", 2000).ToString( )); }, exceptionHandler: e => PluginSettings.EventLog.WriteException(e)); }
/// <summary> /// Loads the history. /// </summary> private void LoadHistory( ) { var databaseManager = new DatabaseManager(PluginSettings.DatabaseSettings); const string commandText = @"--ReadiMon - LoadHistory SELECT [Timestamp], [TenantName], [TenantId], [PackageId], [PackageName], [Operation], [Machine], [User], [Process], [Arguments], [Exception] FROM [dbo].[PlatformHistory]"; try { using (IDbCommand command = databaseManager.CreateCommand(commandText)) { using (var reader = command.ExecuteReader( )) { var historyItems = new List <PlatformHistoryItem>( ); var tenants = new HashSet <string>( ); do { do { while (reader.Read( )) { var timestamp = reader.GetDateTime(0, DateTime.MinValue); var tenantName = reader.GetString(1, ""); var tenantId = reader.GetInt64(2, 0); var packageId = reader.GetGuid(3, Guid.Empty); var packageName = reader.GetString(4, ""); var operation = reader.GetString(5, "Unknown"); var machine = reader.GetString(6, ""); var user = reader.GetString(7, ""); var process = reader.GetString(8, ""); var args = reader.GetString(9, ""); var err = reader.GetString(10, ""); var historyItem = new PlatformHistoryItem { Timestamp = timestamp.ToLocalTime( ), TenantName = tenantName, TenantId = tenantId, PackageId = packageId, PackageName = packageName, Operation = operation, Machine = machine, User = user, Process = process, Arguments = args, Exception = err, IsError = !string.IsNullOrEmpty(err) }; tenants.Add(tenantName); historyItems.Add(historyItem); } }while (reader.NextResult( )); }while (reader.NextResult( )); HistoryItems = historyItems.OrderByDescending(x => x.Timestamp).ToList( ); TenantFilters = new List <FilterObject>( ); foreach (string ten in tenants.OrderBy(k => k)) { TenantFilters.Add(new FilterObject(ten, string.IsNullOrEmpty(ten) ? "<empty>" : ten, true, TenantFilterUpdate)); } OnPropertyChanged("TenantFilters"); FilteredHistoryItems = new List <PlatformHistoryItem>(HistoryItems); } } } catch (Exception exc) { PluginSettings.EventLog.WriteException(exc); } }