public void ListenerThread(string requestUrl) { ProcessStatus = (int)AkeneoProductIndexerStatuses.ListingInProgress; HttpManager = new BaseWebClientWriter(); try { var response = HttpManager.GetData(requestUrl, new WebClientHeader("Authorization", $"Bearer {AuthToken}")); AkeneoIndexedProductDto dto = JsonConvert.DeserializeObject <AkeneoIndexedProductDto>(response); if (dto.LinksCollection.NextLink != null) { var thread = new Thread(() => { ListenerThread(dto.LinksCollection.NextLink.Href); }); thread.Start(); } if (dto.Embed.ItemsCollection != null && dto.Embed.ItemsCollection.Count > 0) { var converter = new AkeneoBaseProductIndexerConverter(); foreach (var selected in dto.Embed.ItemsCollection) { try { var tempProductStorage = converter.ConvertToApplicationEntity(selected); lock (RequestList) { RequestList.Add(tempProductStorage); } } catch (Exception e) { _logger.error( $"(AkeneoBaseProductIndexerConverter exception): Cannot convert dto entity: {e.Message}"); } } } if (dto.LinksCollection.NextLink == null) { ProcessStatus = (int)AkeneoProductIndexerStatuses.ListingFinished; InvokeOnFinishedListing(); } } catch (Exception e) { _logger.error(e.Message); } }
public void LaunchService() { ServiceStatus = BaseServicesStatuses.ServiceLaunching; try { _c = new ChromeDriverResolver(_driverTasks, Proxy, settings.BaseUrl, _l); if (!_c.Initialize()) { ServiceStatus = BaseServicesStatuses.ServiceError; return; } Thread.Sleep(15000); _c.UpdateFieldData("#username", settings.Login); _c.UpdateFieldData("#password", settings.Password); _c.ExecuteScript("document.getElementById('form1').submit()"); Thread.Sleep(5000); ServiceStatus = BaseServicesStatuses.ServiceLaunched; } catch (Exception e) { ServiceStatus = BaseServicesStatuses.ServiceError; _l.error($"[ShareAsaleService] An exception occured, during initializing chrome driver: {e.Message} -> {e.StackTrace}"); _c?.Dispose(); } }
public void List() { if (ProcessStatus.Equals(AkeneoProductIndexerStatuses.ListingError)) { _l.error("Fatal error during indexing Akeneo categories, you can find more information in application error logs"); return; } if (ProcessStatus.Equals(AkeneoProductIndexerStatuses.ListingStarting) || ProcessStatus.Equals(AkeneoProductIndexerStatuses.ListingInProgress) || ProcessStatus.Equals(AkeneoProductIndexerStatuses.ListingFinished)) { _l.warn("Cancel - process already started"); } else { ProcessStatus = AkeneoProductIndexerStatuses.ListingStarting; new Thread(() => { ListenerThread($"{Settings.BaseAkeneoUrl}{Settings.AkeneoCategoryListUrl}?limit=100"); }).Start(); } }
public bool Initialize() { try { var _ds = new ChromeOptions(); if (settings.DisableInfoBar) { _ds.AddArgument("disable-infobars"); } if (settings.LaunchIncognito) { _ds.AddArgument("--incognito"); } if (settings.IgnoreCertificateErrors) { _ds.AddArgument("ignore-certificate-errors"); } if (settings.LaunchHeadless) { // _ds.AddArgument("--headless"); } if (settings.UseProxy) { // var _prPath = CreateTempProxyExtension(); var _prPath = $"{Directory.GetCurrentDirectory()}/temp/test.zip"; if (ReferenceEquals(_prPath, null)) { throw new Exception("Failed to create proxy service extension"); } _ds.AddExtension(_prPath); } _cd = new ChromeDriver($"{Directory.GetCurrentDirectory()}/Scrapper/Implementation/Driver", _ds); //_cd.Manage().Window.Minimize(); _cd.Navigate().GoToUrl(_baseUrl); return(true); } catch (WebDriverException e) { _l.error($"Chrome Driver: While trying to initialize, exception occured! {e.Message} -> {e.StackTrace}"); _l.error(e.Message); this.Dispose(); return(false); } }