Example #1
0
 public deviceController(IUnitService unitService, IFlushService flushService, ISystemStatusService systemStatusService,
                         IPasswordService passwordService, IOptions <BaseUrlOptions> urlOptions)//IMapper mapper)
 {
     /*_mapper = mapper;*/
     _unitService         = unitService;
     _flushService        = flushService;
     _systemStatusService = systemStatusService;
     _passwordService     = passwordService;
     _urlOptions          = urlOptions.Value;
 }
 public HttpQueryBuilder(IOptions <BaseUrlOptions> options)
 {
     _options = options.Value;
 }
Example #3
0
        private async Task <string> GetTokenFromIdentity(LoginInfo login, PageFactory factory, BaseUrlOptions options)
        {
            var page = await factory.Get();

            try
            {
                _logger.LogInformation($"Navigating to {options.Application}");
                await page.GoToAsync(options.Application);

                _logger.LogInformation("Waiting navigation");
                await page.WaitForNavigationAsync();

                _logger.LogInformation("Evaluating JS expression");
                await page.EvaluateExpressionAsync($"document.getElementById('Input_UserName').value = '{login.UserName}';" +
                                                   $"document.getElementById('Input_Password').value = '{login.Password}';" +
                                                   "document.getElementsByClassName('button')[0].click();");

                // Avoiding OPTIONS request from React
                for (var i = 0; i < MaxAttemptNumber; i++)
                {
                    _logger.LogInformation($"Waiting request, attempt {i + 1}");
                    var request = await page.WaitForRequestAsync($"{options.ApiEndpoint}");

                    if (request.Method == HttpMethod.Options)
                    {
                        continue;
                    }

                    return(ParseToken(request));
                }
            }
            catch (TimeoutException ex)
            {
                throw new Exception($"Can't login the user with following credentials. Reason: {ex.Message}");
            }
            finally
            {
                await factory.Dispose(page);
            }

            return(string.Empty);