public void RegisterEvent(ApiEvent apiEvent) { apiEvent.CreateItemEvent += (sender, args) => { if (!IsTracking) return; count += count >= max_count ? 0 : 1; ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.BattleResultEvent += (sender, args) => { if (!IsTracking) return; finished = true; ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.PracticeBattleResultEvent += (sender, args) => { if (!IsTracking) return; if (!args.IsSuccess) return; count += count >= max_count ? 0 : 1; ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.MissionResultEvent += (sender, args) => { if (!IsTracking) return; if (!args.Name.Contains("東京急行")) return; count += count >= max_count ? 0 : 1; ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.BattleResultEvent += (sender, args) => { if (!IsTracking) return; foreach (var ship in args.EnemyShips) { // 13 = SS if (ship.Type == 13) if (ship.MaxHp != int.MaxValue && ship.NowHp <= 0) count += count >= max_count ? 0 : 1; } ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.BattleResultEvent += (sender, args) => { if (!IsTracking) return; if (args.MapAreaId != map_id) return; if (!boss_names.Contains(args.EnemyName)) return; if (args.Rank != "S" && args.Rank != "A" && args.Rank != "B") return; count += count >= max_count ? 0 : 1; ProcessChanged?.Invoke(this, new EventArgs()); }; }
protected override void EnrichTelemetryApiEvent(ApiEvent apiEvent) { apiEvent.IsConfidentialClient = true; }
protected virtual void EnrichTelemetryApiEvent(ApiEvent apiEvent) { // In base classes have them override this to add their properties/fields to the event. }
public void RegisterEvent(ApiEvent apiEvent) { apiEvent.BattleResultEvent += (sender, args) => { if (!IsTracking) return; if (args.IsFirstCombat) { if (process_combat < 36) process_combat++; } // S win? if (args.Rank == "S") if (process_combat_s < 6) process_combat_s++; // is boss if (boss_names.Contains(args.EnemyName)) { if (process_boss < 24) process_boss++; // boss & win? if (args.Rank == "S" || args.Rank == "A" || args.Rank == "B") if (process_boss_win < 12) process_boss_win++; } ProcessChanged?.Invoke(this, new EventArgs()); }; }
public void TelemetryEventCountsAreCorrectTest() { string[] reqIdArray = new string[5]; Task[] taskArray = new Task[5]; try { for (int i = 0; i < 5; i++) { var correlationId = Guid.NewGuid().AsMatsCorrelationId(); reqIdArray[i] = correlationId; Task task = new Task(() => { var e1 = new ApiEvent(_logger, _crypto, correlationId) { Authority = new Uri("https://login.microsoftonline.com"), AuthorityType = "Aad" }; _telemetryManager.StartEvent(e1); // do some stuff... e1.WasSuccessful = true; _telemetryManager.StopEvent(e1); var e2 = new HttpEvent(correlationId) { HttpPath = new Uri("https://contoso.com"), UserAgent = "SomeUserAgent", QueryParams = "?a=1&b=2" }; _telemetryManager.StartEvent(e2); // do some stuff... e2.HttpResponseStatus = 200; _telemetryManager.StopEvent(e2); var e3 = new HttpEvent(correlationId) { HttpPath = new Uri("https://contoso.com"), UserAgent = "SomeOtherUserAgent", QueryParams = "?a=3&b=4" }; _telemetryManager.StartEvent(e3); // do some stuff... e2.HttpResponseStatus = 200; _telemetryManager.StopEvent(e3); var e4 = new CacheEvent(CacheEvent.TokenCacheWrite, correlationId) { TokenType = CacheEvent.TokenTypes.AT }; _telemetryManager.StartEvent(e4); // do some stuff... _telemetryManager.StopEvent(e4); var e5 = new CacheEvent(CacheEvent.TokenCacheDelete, correlationId) { TokenType = CacheEvent.TokenTypes.RT }; _telemetryManager.StartEvent(e5); // do some stuff... _telemetryManager.StopEvent(e5); }); taskArray[i] = task; task.Start(); } Task.WaitAll(taskArray); } finally { foreach (string reqId in reqIdArray) { _telemetryManager.Flush(reqId); } } // Every task should have one default event with these counts foreach (Dictionary <string, string> telemetryEvent in _myReceiver.EventsReceived) { if (telemetryEvent[EventBase.EventNameKey] == "msal.default_event") { Assert.AreEqual("2", telemetryEvent[MsalTelemetryBlobEventNames.HttpEventCountTelemetryBatchKey]); Assert.AreEqual("2", telemetryEvent[MsalTelemetryBlobEventNames.CacheEventCountConstStrKey]); Assert.AreEqual("0", telemetryEvent[MsalTelemetryBlobEventNames.UiEventCountTelemetryBatchKey]); } } }
public void TelemetrySkipEventsIfApiEventWasSuccessful() { _telemetryManager = new TelemetryManager( _serviceBundle.Config, _platformProxy, _myReceiver.HandleTelemetryEvents, true); var correlationId = Guid.NewGuid().AsMatsCorrelationId(); try { var e1 = new ApiEvent(_logger, _crypto, correlationId) { Authority = new Uri("https://login.microsoftonline.com"), AuthorityType = "Aad" }; _telemetryManager.StartEvent(e1); // do some stuff... e1.WasSuccessful = true; _telemetryManager.StopEvent(e1); var e2 = new UiEvent(correlationId) { UserCancelled = false }; _telemetryManager.StartEvent(e2); _telemetryManager.StopEvent(e2); var e3 = new UiEvent(correlationId) { AccessDenied = false }; _telemetryManager.StartEvent(e3); _telemetryManager.StopEvent(e3); } finally { _telemetryManager.Flush(correlationId); } Assert.AreEqual(0, _myReceiver.EventsReceived.Count); _telemetryManager = new TelemetryManager(_serviceBundle.Config, _platformProxy, _myReceiver.HandleTelemetryEvents); correlationId = Guid.NewGuid().AsMatsCorrelationId(); try { var e1 = new ApiEvent(_logger, _crypto, correlationId) { Authority = new Uri("https://login.microsoftonline.com"), AuthorityType = "Aad" }; _telemetryManager.StartEvent(e1); // do some stuff... e1.WasSuccessful = false; // mimic an unsuccessful event, so that this batch should be dispatched _telemetryManager.StopEvent(e1); var e2 = new UiEvent(correlationId) { UserCancelled = true }; _telemetryManager.StartEvent(e2); _telemetryManager.StopEvent(e2); var e3 = new UiEvent(correlationId) { AccessDenied = true }; _telemetryManager.StartEvent(e3); _telemetryManager.StopEvent(e3); } finally { _telemetryManager.Flush(correlationId); } Assert.IsTrue(_myReceiver.EventsReceived.Count > 0); }
public void TelemetryEventCountsAreCorrectTest() { string[] reqIdArray = new string[5]; Task[] taskArray = new Task[5]; try { for (int i = 0; i < 5; i++) { string reqId = _telemetryManager.GenerateNewRequestId(); reqIdArray[i] = reqId; Task task = (new Task(() => { var e1 = new ApiEvent(new MsalLogger(Guid.NewGuid(), null)) { Authority = new Uri("https://login.microsoftonline.com"), AuthorityType = "Aad" }; _telemetryManager.StartEvent(reqId, e1); // do some stuff... e1.WasSuccessful = true; _telemetryManager.StopEvent(reqId, e1); var e2 = new HttpEvent() { HttpPath = new Uri("https://contoso.com"), UserAgent = "SomeUserAgent", QueryParams = "?a=1&b=2" }; _telemetryManager.StartEvent(reqId, e2); // do some stuff... e2.HttpResponseStatus = 200; _telemetryManager.StopEvent(reqId, e2); var e3 = new HttpEvent() { HttpPath = new Uri("https://contoso.com"), UserAgent = "SomeOtherUserAgent", QueryParams = "?a=3&b=4" }; _telemetryManager.StartEvent(reqId, e3); // do some stuff... e2.HttpResponseStatus = 200; _telemetryManager.StopEvent(reqId, e3); var e4 = new CacheEvent(CacheEvent.TokenCacheWrite) { TokenType = CacheEvent.TokenTypes.AT }; _telemetryManager.StartEvent(reqId, e4); // do some stuff... _telemetryManager.StopEvent(reqId, e4); var e5 = new CacheEvent(CacheEvent.TokenCacheDelete) { TokenType = CacheEvent.TokenTypes.RT }; _telemetryManager.StartEvent(reqId, e5); // do some stuff... _telemetryManager.StopEvent(reqId, e5); })); taskArray[i] = task; task.Start(); } Task.WaitAll(taskArray); } finally { foreach (string reqId in reqIdArray) { _telemetryManager.Flush(reqId, ClientId); } } // Every task should have one default event with these counts foreach (Dictionary <string, string> telemetryEvent in _myReceiver.EventsReceived) { if (telemetryEvent[EventBase.EventNameKey] == TelemetryEventProperties.MsalDefaultEvent) { Assert.AreEqual("2", telemetryEvent[TelemetryEventProperties.MsalHttpEventCount]); Assert.AreEqual("2", telemetryEvent[TelemetryEventProperties.MsalCacheEventCount]); Assert.AreEqual("0", telemetryEvent[TelemetryEventProperties.MsalUiEventCount]); } } }
public void TelemetrySkipEventsIfApiEventWasSuccessful() { var myReceiver = new MyReceiver { OnlySendFailureTelemetry = true }; var telemetryManager = new TelemetryManager(myReceiver); var telemetry = (ITelemetry)telemetryManager; var reqId = telemetryManager.GenerateNewRequestId(); try { var e1 = new ApiEvent(new MsalLogger(Guid.NewGuid(), null)) { Authority = new Uri("https://login.microsoftonline.com"), AuthorityType = "Aad" }; telemetry.StartEvent(reqId, e1); // do some stuff... e1.WasSuccessful = true; telemetry.StopEvent(reqId, e1); var e2 = new UiEvent() { UserCancelled = false }; telemetry.StartEvent(reqId, e2); telemetry.StopEvent(reqId, e2); var e3 = new UiEvent() { AccessDenied = false }; telemetry.StartEvent(reqId, e3); telemetry.StopEvent(reqId, e3); } finally { telemetry.Flush(reqId, ClientId); } Assert.AreEqual(0, myReceiver.EventsReceived.Count); reqId = telemetryManager.GenerateNewRequestId(); try { var e1 = new ApiEvent(new MsalLogger(Guid.NewGuid(), null)) { Authority = new Uri("https://login.microsoftonline.com"), AuthorityType = "Aad" }; telemetry.StartEvent(reqId, e1); // do some stuff... e1.WasSuccessful = false; // mimic an unsuccessful event, so that this batch should be dispatched telemetry.StopEvent(reqId, e1); var e2 = new UiEvent() { UserCancelled = true }; telemetry.StartEvent(reqId, e2); telemetry.StopEvent(reqId, e2); var e3 = new UiEvent() { AccessDenied = true }; telemetry.StartEvent(reqId, e3); telemetry.StopEvent(reqId, e3); } finally { telemetry.Flush(reqId, ClientId); } Assert.IsTrue(myReceiver.EventsReceived.Count > 0); }
public TelemetryHelper CreateTelemetryHelper(ApiEvent eventToStart) { return(new TelemetryHelper( ServiceBundle.HttpTelemetryManager, eventToStart)); }
public ResourceEvent(ApiEvent @event, CancellationTokenSource tokenSource) { Event = @event; TokenSource = tokenSource; }
public static async Task Publish(ApiEvent apiEvent) { }
public static JObject CreateMessage(ApiEvent apiEvent, object payload = null) => new JObject() { [ApiKeys.EventType] = apiEvent.ToString(), [ApiKeys.EventPayload] = payload != null?JToken.FromObject(payload) : null };