Example #1
0
        public async Task BenchmarksAuth()
        {
            try
            {
                //Auth Insert
                var random  = new Random();
                var ind     = random.Next(1, 1000);
                var newUser = new UserDto()
                {
                    FirstName = $"TestFName#{ind}",
                    LastName  = $"TestLName#{ind}",
                    FullName  = $"TestFullName#{ind}",
                    Height    = 170,
                    isEnabled = true,
                    isActive  = true,
                    TeamId    = ind,
                    Email     = $"testuser{ind}@tppusers.onmicrosoft.com",
                    StartDate = DateTime.UtcNow,
                    EndDate   = DateTime.UtcNow.AddYears(1)
                };

                var apiCallUrl = $"{this._apibaseUrl}/api/v1/auth/user";
                var startTime  = DateTime.UtcNow;
                var result     = await PostItemAsync <UserDto>(apiCallUrl, newUser);

                if (result.IsSuccessStatusCode)
                {
                    var endTime     = DateTime.UtcNow;
                    var elapsedTime = (endTime - startTime).Milliseconds;

                    //Write the benchmark data
                    await _svcBenchmark.AddBenchmark(new Benchmark
                    {
                        Controller = "Auth",
                        Method     = "CreateUser",
                        Operation  = "Insert",
                        Time       = elapsedTime,
                        LastRun    = DateTime.UtcNow
                    });

                    //Clean the test data
                    var newUserId = await result.Content.ReadAsStringAsync();

                    await _svcAuth.DeleteUser(Int32.Parse(newUserId));
                }



                //Authenticate user
                var aadId = "93621dc3-43c1-4ade-adaa-9e8955931772";
                apiCallUrl = $"{this._apibaseUrl}/api/v1/auth/{aadId}";
                startTime  = DateTime.UtcNow;
                var teamId = await GetItemAsync <int>(apiCallUrl);

                if (teamId > 0)
                {
                    var endTime     = DateTime.UtcNow;
                    var elapsedTime = (endTime - startTime).Milliseconds;

                    //Write the benchmark data
                    await _svcBenchmark.AddBenchmark(new Benchmark
                    {
                        Controller = "Auth",
                        Method     = "AuthenticateUser",
                        Operation  = "Join Select",
                        Time       = elapsedTime,
                        LastRun    = DateTime.UtcNow
                    });
                }


                //Retrieve
                int userId = 9780;
                apiCallUrl = $"{this._apibaseUrl}/api/v1/auth/user/{userId}";
                startTime  = DateTime.UtcNow;
                var userDto = await GetItemAsync <UserDto>(apiCallUrl);

                if (userDto != null)
                {
                    var endTime     = DateTime.UtcNow;
                    var elapsedTime = (endTime - startTime).Milliseconds;

                    //Write the benchmark data
                    await _svcBenchmark.AddBenchmark(new Benchmark
                    {
                        Controller = "Auth",
                        Method     = "GetUser",
                        Operation  = "Select by Id",
                        Time       = elapsedTime,
                        LastRun    = DateTime.UtcNow
                    });
                }


                //Update user
                ind = random.Next(1, 1000);
                var user = await _svcAuth.GetUser(userId);

                user.MiddleName = $"MiddleName#{ind}";
                user.TeamId     = 1;
                apiCallUrl      = $"{this._apibaseUrl}/api/v1/auth/user/update";
                startTime       = DateTime.UtcNow;
                result          = await PostItemAsync <UserDto>(apiCallUrl, user);

                if (result.IsSuccessStatusCode)
                {
                    var endTime     = DateTime.UtcNow;
                    var elapsedTime = (endTime - startTime).Milliseconds;

                    //Write the benchmark data
                    await _svcBenchmark.AddBenchmark(new Benchmark
                    {
                        Controller = "Auth",
                        Method     = "UpdateUser",
                        Operation  = "Update",
                        Time       = elapsedTime,
                        LastRun    = DateTime.UtcNow
                    });
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }