public IActionResult AllocateUsers(AllocateUsersRequest request)
        {
            _logger.LogDebug(
                "AllocateUsers No. of UserTypes: {count} Application: {application}", request.UserTypes.Count, request.Application);

            lock (AllocationLock)
            {
                var responses = new List <UserDetailsResponse>();

                foreach (var userType in request.UserTypes)
                {
                    var allocateRequest = new AllocateUserRequest()
                    {
                        AllocatedBy     = request.AllocatedBy,
                        Application     = request.Application,
                        ExpiryInMinutes = request.ExpiryInMinutes,
                        IsEjud          = request.IsEjud,
                        IsProdUser      = request.IsProdUser,
                        TestType        = request.TestType,
                        UserType        = userType
                    };

                    var user = Allocate(allocateRequest);
                    _logger.LogDebug("User '{username}' successfully allocated", user.Result.Username);
                    responses.Add(UserToDetailsResponseMapper.MapToResponse(user.Result));
                }

                _logger.LogInformation("Allocated {count} user(s)", responses.Count);

                return(Ok(responses));
            }
        }
예제 #2
0
 public AllocateUserBuilder()
 {
     _request = new AllocateUserRequest()
     {
         Application     = AllocationData.APPLICATION,
         ExpiryInMinutes = AllocationData.EXPIRY_IN_MINUTES,
         IsProdUser      = UserData.IS_PROD_USER,
         TestType        = AllocationData.TEST_TYPE
     };
 }
예제 #3
0
 public GetAllocatedUserByUserTypeQuery(AllocateUserRequest request)
 {
     Application     = request.Application;
     ExpiryInMinutes = request.ExpiryInMinutes;
     IsEjud          = request.IsEjud;
     IsProdUser      = request.IsProdUser;
     TestType        = request.TestType;
     UserType        = request.UserType;
     AllocatedBy     = request.AllocatedBy;
 }
        public IActionResult AllocateSingleUser(AllocateUserRequest request)
        {
            _logger.LogDebug("AllocateSingleUser {userType} {application}", request.UserType, request.Application);

            lock (AllocationLock)
            {
                var user = Allocate(request);
                _logger.LogDebug("User '{username}' successfully allocated", user.Result.Username);

                var response = UserToDetailsResponseMapper.MapToResponse(user.Result);
                return(Ok(response));
            }
        }
예제 #5
0
 public AllocateUserRequestBuilder()
 {
     _request = new AllocateUserRequest
     {
         AllocatedBy     = EmailData.TEST_WEB_MANUAL_USER,
         Application     = Application.TestApi,
         ExpiryInMinutes = 1,
         IsEjud          = false,
         IsProdUser      = false,
         TestType        = TestType.Automated,
         UserType        = UserType.Individual
     };
 }
        public async Task <IActionResult> AllocateSingleUser(AllocateUserRequest request)
        {
            _logger.LogDebug("AllocateSingleUser {userType} {application}", request.UserType, request.Application);

            try
            {
                var response = await _testApiClient.AllocateSingleUserAsync(request);

                _logger.LogDebug("User '{username}' successfully allocated", response.Username);
                return(Ok(response));
            }
            catch (TestApiException e)
            {
                _logger.LogError(e, "Unable to allocate user: {userType}", request.UserType);
                return(StatusCode(e.StatusCode, e.Response));
            }
        }
        private void AllocateSingleUser(UserType userType)
        {
            var request = new AllocateUserRequest()
            {
                Application     = Application.VideoWeb,
                ExpiryInMinutes = 1,
                IsProdUser      = _c.VideoWebConfig.IsLive,
                TestType        = TestType.Automated,
                UserType        = userType
            };

            var response = _c.Apis.TestApi.AllocateUser(request);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            response.Should().NotBeNull();
            var user = RequestHelper.Deserialise <UserDetailsResponse>(response.Content);

            user.Should().NotBeNull();
            _c.Test.Users = UserDetailsResponseToUsersMapper.Map(user);
        }
        private void AllocateUser(UserType userType)
        {
            var request = new AllocateUserRequest()
            {
                Application     = Application.TestWeb,
                ExpiryInMinutes = ALLOCATE_USERS_FOR_MINUTES,
                IsProdUser      = false,
                TestType        = TestType.Automated,
                UserType        = userType
            };

            var response = _c.TestApi.AllocateUser(request);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            response.Should().NotBeNull();
            var user = RequestHelper.Deserialise <UserDetailsResponse>(response.Content);

            user.Should().NotBeNull();
            _c.CurrentUser = user;
        }
 public GetAllocatedUsersControllerTests()
 {
     _loggerMock = new Mock <ILogger <AllocationController> >();
     _request    = new AllocateUserBuilder().Judge().AllocatedBy(AllocationData.ALLOCATED_BY).Build();
 }
 private async Task <UserDto> Allocate(AllocateUserRequest request)
 {
     return(await _queryHandler.Handle <GetAllocatedUserByUserTypeQuery, UserDto>(
                new GetAllocatedUserByUserTypeQuery(request)));
 }
예제 #11
0
 public AllocateUserControllerTests()
 {
     _loggerMock = new Mock <ILogger <AllocationController> >();
     _request    = new AllocateUserBuilder().Judge().Build();
 }