Exemplo n.º 1
0
            public void ReturnsFalse()
            {
                // Arrange
                var ex = new TaskCanceledException();

                // Act
                var isTransient = SteamClientApiClient.IsTransient(ex);

                // Assert
                Assert.False(isTransient);
            }
Exemplo n.º 2
0
            public void ExIsTimeoutRejectedException_ReturnsTrue()
            {
                // Arrange
                var ex = new TimeoutRejectedException();

                // Act
                var isTransient = SteamClientApiClient.IsTransient(ex);

                // Assert
                Assert.True(isTransient);
            }
Exemplo n.º 3
0
            public void ExIsSteamClientApiExceptionAndResultIsNotTransient_ReturnsFalse()
            {
                // Arrange
                var ex = new SteamClientApiException(null, EResult.AccessDenied);

                // Act
                var isTransient = SteamClientApiClient.IsTransient(ex);

                // Assert
                Assert.False(isTransient);
            }
Exemplo n.º 4
0
            public void ExIsSteamClientApiExceptionAndResultIsNull_ReturnsTrue()
            {
                // Arrange
                var ex = new SteamClientApiException(null, new TaskCanceledException());

                // Act
                var isTransient = SteamClientApiClient.IsTransient(ex);

                // Assert
                Assert.True(isTransient);
            }
Exemplo n.º 5
0
            public void ExIsSteamClientApiExceptionAndResultIsTransient_ReturnsTrue(EResult result)
            {
                // Arrange
                var ex = new SteamClientApiException(null, result);

                // Act
                var isTransient = SteamClientApiClient.IsTransient(ex);

                // Assert
                Assert.True(isTransient);
            }
        private async Task UpdateDailyLeaderboardsAsync(CancellationToken cancellationToken)
        {
            var worker = kernel.Get <DailyLeaderboardsWorker>();

            using (var operation = TelemetryClient.StartOperation <RequestTelemetry>("Update daily leaderboards"))
                using (new UpdateActivity(log, "daily leaderboards"))
                {
                    try
                    {
                        if (!Settings.AreSteamClientCredentialsSet())
                        {
                            log.Warn("Using test data for calls to Steam Client API. Set your Steam user name and password to use the actual Steam Client API.");
                            log.Warn("Run this application with --help to find out how to set your Steam user name and password.");
                        }

                        var leaderboards = await worker.GetDailyLeaderboardsAsync(Settings.DailyLeaderboardsPerUpdate, cancellationToken).ConfigureAwait(false);

                        await worker.UpdateDailyLeaderboardsAsync(leaderboards, cancellationToken).ConfigureAwait(false);

                        await worker.StoreDailyLeaderboardsAsync(leaderboards, cancellationToken).ConfigureAwait(false);

                        operation.Telemetry.Success = true;
                    }
                    catch (Exception ex)
                        when(SteamClientApiClient.IsTransient(ex) ||
                             LeaderboardsStoreClient.IsTransient(ex))
                        {
                            TelemetryClient.TrackException(ex);
                            log.Error("Failed to complete run due to an error.", ex);
                            operation.Telemetry.Success = false;
                        }
                    catch (Exception) when(operation.Telemetry.MarkAsUnsuccessful())
                    {
                    }
                    finally
                    {
                        kernel.Release(worker);
                    }
                }
        }