public async Task <AuthenticationResult> RunAsync(CancellationToken cancellationToken = default) { Stopwatch sw = new Stopwatch(); sw.Start(); ApiEvent apiEvent = InitializeApiEvent(AuthenticationRequestParameters.Account?.HomeAccountId?.Identifier); AuthenticationRequestParameters.RequestContext.ApiEvent = apiEvent; try { using (AuthenticationRequestParameters.RequestContext.CreateTelemetryHelper(apiEvent)) { try { AuthenticationRequestParameters.LogParameters(); LogRequestStarted(AuthenticationRequestParameters); AuthenticationResult authenticationResult = await ExecuteAsync(cancellationToken).ConfigureAwait(false); LogReturnedToken(authenticationResult); apiEvent.TenantId = authenticationResult.TenantId; apiEvent.AccountId = authenticationResult.UniqueId; apiEvent.WasSuccessful = true; authenticationResult.AuthenticationResultMetadata.DurationTotalInMs = sw.ElapsedMilliseconds; authenticationResult.AuthenticationResultMetadata.DurationInHttpInMs = apiEvent.DurationInHttpInMs; authenticationResult.AuthenticationResultMetadata.DurationInCacheInMs = apiEvent.DurationInCacheInMs; return(authenticationResult); } catch (MsalException ex) { apiEvent.ApiErrorCode = ex.ErrorCode; AuthenticationRequestParameters.RequestContext.Logger.ErrorPii(ex); throw; } catch (Exception ex) { AuthenticationRequestParameters.RequestContext.Logger.ErrorPii(ex); throw; } } } finally { ServiceBundle.MatsTelemetryManager.Flush(AuthenticationRequestParameters.RequestContext.CorrelationId.AsMatsCorrelationId()); } }
public async Task <AuthenticationResult> RunAsync(CancellationToken cancellationToken) { ApiEvent apiEvent = InitializeApiEvent(AuthenticationRequestParameters.Account?.HomeAccountId?.Identifier); try { using (ServiceBundle.TelemetryManager.CreateTelemetryHelper(apiEvent)) { try { await PreRunAsync().ConfigureAwait(false); AuthenticationRequestParameters.LogParameters(AuthenticationRequestParameters.RequestContext.Logger); LogRequestStarted(AuthenticationRequestParameters); AuthenticationResult authenticationResult = await ExecuteAsync(cancellationToken).ConfigureAwait(false); LogReturnedToken(authenticationResult); apiEvent.TenantId = authenticationResult.TenantId; apiEvent.AccountId = authenticationResult.UniqueId; apiEvent.WasSuccessful = true; return(authenticationResult); } catch (MsalException ex) { apiEvent.ApiErrorCode = ex.ErrorCode; AuthenticationRequestParameters.RequestContext.Logger.ErrorPii(ex); throw; } catch (Exception ex) { AuthenticationRequestParameters.RequestContext.Logger.ErrorPii(ex); throw; } } } finally { ServiceBundle.TelemetryManager.Flush(AuthenticationRequestParameters.RequestContext.CorrelationId.AsMatsCorrelationId()); } }
public async Task <AuthenticationResult> RunAsync(CancellationToken cancellationToken = default) { Stopwatch sw = Stopwatch.StartNew(); ApiEvent apiEvent = InitializeApiEvent(AuthenticationRequestParameters.Account?.HomeAccountId?.Identifier); AuthenticationRequestParameters.RequestContext.ApiEvent = apiEvent; using (AuthenticationRequestParameters.RequestContext.CreateTelemetryHelper(apiEvent)) { try { AuthenticationRequestParameters.LogParameters(); LogRequestStarted(AuthenticationRequestParameters); AuthenticationResult authenticationResult = await ExecuteAsync(cancellationToken).ConfigureAwait(false); LogReturnedToken(authenticationResult); UpdateTelemetry(sw, apiEvent, authenticationResult); LogMetricsFromAuthResult(authenticationResult, AuthenticationRequestParameters.RequestContext.Logger); return(authenticationResult); } catch (MsalException ex) { apiEvent.ApiErrorCode = ex.ErrorCode; AuthenticationRequestParameters.RequestContext.Logger.ErrorPii(ex); throw; } catch (Exception ex) { AuthenticationRequestParameters.RequestContext.Logger.ErrorPii(ex); throw; } } }