Exemplo n.º 1
0
        public void RegisterEvent(ApiEvent apiEvent)
        {
            apiEvent.CreateItemEvent += (sender, args) =>
                                        {
                                            if (!IsTracking)
                                                return;

                                            count += count >= max_count ? 0 : 1;

                                            ProcessChanged?.Invoke(this, new EventArgs());
                                        };
        }
Exemplo n.º 2
0
        public void RegisterEvent(ApiEvent apiEvent)
        {
            apiEvent.BattleResultEvent += (sender, args) =>
                                          {
                                              if (!IsTracking)
                                                  return;

                                              finished = true;

                                              ProcessChanged?.Invoke(this, new EventArgs());
                                          };
        }
Exemplo n.º 3
0
        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());
                                                  };
        }
Exemplo n.º 4
0
        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());
                                           };
        }
Exemplo n.º 5
0
        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());
                                          };
        }
Exemplo n.º 6
0
        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;
 }
Exemplo n.º 8
0
 protected virtual void EnrichTelemetryApiEvent(ApiEvent apiEvent)
 {
     // In base classes have them override this to add their properties/fields to the event.
 }
Exemplo n.º 9
0
        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));
 }
Exemplo n.º 15
0
 public ResourceEvent(ApiEvent @event, CancellationTokenSource tokenSource)
 {
     Event       = @event;
     TokenSource = tokenSource;
 }
Exemplo n.º 16
0
		public static async Task Publish(ApiEvent apiEvent)
		{

		}
Exemplo n.º 17
0
 public static JObject CreateMessage(ApiEvent apiEvent, object payload = null)
 => new JObject()
 {
     [ApiKeys.EventType]    = apiEvent.ToString(),
     [ApiKeys.EventPayload] = payload != null?JToken.FromObject(payload) : null
 };