private void ClearNextObjectInfo() { var lastObj = client.GetObjects().OrderByDescending(o => o.Id).First(); var nextId = lastObj.Id; bool deleted = false; do { nextId++; deleted = Impersonator.ExecuteAction(() => { if (Directory.Exists(ServerManager.PrtgSystemInformationDatabase)) { var files = Directory.EnumerateFiles(ServerManager.PrtgSystemInformationDatabase, "*.*", SearchOption.AllDirectories).Where(f => new FileInfo(f).Name.StartsWith($"Device {nextId}.")).ToList(); if (files.Count > 0) { Logger.LogTestDetail($"Removing System Information for previously created object ID {nextId}"); } foreach (var file in files) { File.Delete(file); } if (files.Count > 0) { return(true); } } return(false); }); } while (deleted); }
public static void RemoveBackupFile(string fileName) => Impersonator.ExecuteAction(() => File.Delete(fileName));
private void Logic_Client_RetryRequestInternal(Action <PrtgClient> action, bool isAsync) { var initialThread = Thread.CurrentThread.ManagedThreadId; Impersonator.ExecuteAction(() => { var retriesMade = 0; var retriesToMake = 3; var coreService = new ServiceController("PRTGCoreService", Settings.Server); var localClient = new PrtgClient(Settings.ServerWithProto, Settings.UserName, Settings.Password); localClient.RetryRequest += (sender, args) => { Logger.LogTestDetail($"Handling retry {retriesMade + 1}"); if (!isAsync) { AssertEx.AreEqual(initialThread, Thread.CurrentThread.ManagedThreadId, "Event was not handled on initial thread"); } retriesMade++; }; localClient.RetryCount = retriesToMake; Logger.LogTestDetail("Stopping PRTG Service"); coreService.Stop(); coreService.WaitForStatus(ServiceControllerStatus.Stopped); try { action(localClient); } catch (AggregateException ex) { if (ex.InnerException != null && ex.InnerException.GetType() == typeof(AssertFailedException)) { throw ex.InnerException; } } catch (WebException) { } finally { Logger.LogTestDetail("Starting PRTG Service"); coreService.Start(); coreService.WaitForStatus(ServiceControllerStatus.Running); Logger.LogTestDetail("Sleeping for 30 seconds"); Thread.Sleep(30000); Logger.LogTestDetail("Refreshing and sleeping for 20 seconds"); localClient.RefreshObject(Settings.Device); Thread.Sleep(20000); ServerManager.WaitForObjects(); } AssertEx.AreEqual(retriesToMake, retriesMade, "An incorrect number of retries were made."); }); }
public static List <FileInfo> GetBackupFiles() => Impersonator.ExecuteAction(new DirectoryInfo(PrtgBackups).GetFiles).ToList();