public void ShouldPlayEvents() { var directoryProvider = new TestDirectoryProvider(); Directory.Delete(directoryProvider.Directory, true); var events = new ConcurrentBag <LogEvent>(); CollectionAssert.IsEmpty(events); string testFile1 = Path.Combine(directoryProvider.Directory, "Journal.1234.log"); string testFile2 = Path.Combine(directoryProvider.Directory, "Journal.2345.log"); File.WriteAllText(testFile1, EventsAsJson.Skip(5).First()); File.WriteAllText(testFile2, EventsAsJson.Skip(5).First()); var burstPlayer1 = new LogBurstPlayer(directoryProvider.Directory, 1); burstPlayer1.Subscribe(events.Add); burstPlayer1.Play(); CollectionAssert.IsNotEmpty(events); Assert.AreEqual(1, events.Count); var burstPlayer2 = new LogBurstPlayer(directoryProvider.Directory, 100); burstPlayer2.Subscribe(events.Add); burstPlayer2.Play(); CollectionAssert.IsNotEmpty(events); Assert.AreEqual(3, events.Count); }
public async Task IntegrationTestUploadLatestLogs() { var logEventSource = new LogBurstPlayer(new SavedGamesDirectoryHelper().Directory, 5); var logCounter = new LogEventTypeCounter(); var stateRecorder = new PlayerStateRecorder(); var inaraRestClient = new ThrottlingRestClient("https://inara.cz/inapi/v1/"); var inaraConverter = new InaraEventConverter(stateRecorder); var inaraApiFacade = new InaraApiFacade(inaraRestClient, TestCredentials.ApiKey, TestCredentials.UserName); // Populate the state recorder to avoid missing ships/starsystems data foreach (var ev in logEventSource.Events) stateRecorder.OnNext(ev); var convertedEvents = logEventSource .Events .SelectMany(inaraConverter.Convert) .ToArray(); var results = await inaraApiFacade.ApiCall(convertedEvents); results = results .Where(e => e.EventStatus != 200) .Where(e => e.EventStatusText != "There is a newer inventory state recorded already.") .Where(e => e.EventStatusText != "This ship was not found but was added automatically.") .ToList(); CollectionAssert.IsEmpty(results); Assert.Pass("Uploaded {0} events", convertedEvents.Length); }
private void AutodetectCmdrNameButton_Click(object sender, EventArgs e) { try { autodetectCmdrNameButton.Enabled = false; var logEventSource = new LogBurstPlayer(new SavedGamesDirectoryHelper().Directory, 5); var cmdrEvent = logEventSource.Events.OfType <Commander>().FirstOrDefault(); cmdrNameTextBox.Text = cmdrEvent?.Name ?? cmdrNameTextBox.Text; Log.Info("Detected commander name as {0}", cmdrEvent?.Name); } catch (Exception ex) { MessageBox.Show("Error detecting cmdr name:\n" + ex.GetStackedErrorMessages(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.Error(ex, "Error while detecting cmdr name"); } finally { autodetectCmdrNameButton.Enabled = true; } }
private static IEnumerable <LogEvent> GetLocalLogEvents() { var logEventPlayer = new LogBurstPlayer(new SavedGamesDirectoryHelper().Directory, 30); return(logEventPlayer.Events.ToList()); }