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; }
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);