private static void WriterOnDoWork(object sender, DoWorkEventArgs doWorkEventArgs) { var worker = (BackgroundWorker)sender; var server = ConfigurationManager.AppSettings["Server"]; var client = new WebDataChannel(server); var provider = new RepositoryProvider(Directory, TimeSpan.FromMinutes(1), 1000); var random = new Random(Guid.NewGuid().GetHashCode()); var count = 0; while (!worker.CancellationPending) { using (var tracker = new Tracker(client, provider)) { worker.ReportProgress(1, $"Starting writer {count++} ..."); tracker.Start(new EventValue("Count", count)); decimal eventCount = random.Next(10, 1000); for (var i = 1; i <= eventCount; i++) { var item = tracker.StartEvent($"Event{i}"); var itemDelay = random.Next(1, 100); worker.ReportProgress((int)(i / eventCount * 100), $"{i} of {eventCount}"); item.Values.Add(new EventValue("Delay", itemDelay)); Thread.Sleep(itemDelay); item.Complete(); } } } }
public void TimedEventWithTimedChild() { var channel = new WebDataChannel("http://localhost"); var provider = new RepositoryProvider(TestHelper.Directory, TimeSpan.FromDays(1), 10000); using (var context = TestHelper.CreateDataContext()) { using (var tracker = Tracker.Start(channel, provider)) { var timedEvent = tracker.StartEvent("TimedEvent"); var childTimedEvent = timedEvent.StartEvent("ChildEvent"); Thread.Sleep(250); childTimedEvent.Complete(); Thread.Sleep(250); timedEvent.Complete(); } Assert.IsTrue(context.Wait(x => x.Events.Count() == 3, 5000)); var actual = context.Events.ToList(); Assert.AreEqual(3, actual.Count); Assert.AreEqual("Session", actual[0].Name); Assert.AreEqual("TimedEvent", actual[1].Name); Assert.IsTrue(actual[1].ElapsedTime.TotalMilliseconds > 500); Assert.IsTrue(actual[1].ElapsedTime.TotalMilliseconds < 550); Assert.AreEqual("ChildEvent", actual[2].Name); Assert.IsTrue(actual[2].ElapsedTime.TotalMilliseconds > 250); Assert.IsTrue(actual[2].ElapsedTime.TotalMilliseconds < 300); } }
private void MainWindowOnLoaded(object sender, RoutedEventArgs e) { var server = ConfigurationManager.AppSettings["Server"]; var client = new WebDataChannel(server); Directory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\BloodHoundPerformance"; var provider = new RepositoryProvider(Directory, TimeSpan.FromMinutes(1), 1000); _tracker = Tracker.Start(client, provider); }
private static void Main(string[] args) { var localPath = @"C:\Users\bobby\AppData\Local\Temp\BobsToolbox"; var client = new WebDataChannel("http://localhost", 30000); var provider = new RepositoryProvider(localPath, TimeSpan.FromDays(1), 30000); using (var tracker = new Tracker(client, provider)) { tracker.Log += (x, y) => System.Console.WriteLine(x); tracker.Start(); System.Console.WriteLine("Press any key"); System.Console.ReadKey(); } }
private static void Main() { var client = new WebDataChannel("http://localhost", 5000); var provider = new RepositoryProvider(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)); _tracker = Tracker.Start(client, provider); using (_tracker) { Application.AddMessageFilter(new MouseMessageFilter()); MouseMessageFilter.Click += MouseEvent; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(_tracker)); } }
public void AddEventWithInvalidSession() { var client = new WebDataChannel("http://localhost", 30000); var createdOn = DateTime.UtcNow; var expected = new Event { CreatedOn = createdOn, CompletedOn = createdOn, Name = "Event1", UniqueId = Guid.NewGuid() }; try { client.WriteEvents(new[] { expected }); } catch (Exception ex) { Console.WriteLine(ex.ToDetailedString()); throw; } }