public BaseLinksScrapper(WebScrapperBaseSiteEntity requestScrapperSettings, BaseLogger logger, AkeneoBaseWriter akeneo, IBaseShopifyProcessor shopifyProcessor) { Akeneo = akeneo; Akeneo.OnProductListeningFinished += OnServiceCallback; Shopify = shopifyProcessor; Shopify.OnShopifyIndexationFinished += OnServiceCallback; Services = new List <IBaseService>(); Services.Add(Shopify); Services.Add(Akeneo); ValidationService = new WebScrapperLinksValidator(); InstanceStatus = WebScrapperBaseStatuses.InstanceNotLaunched; _l = logger; requestScrappingSite = requestScrapperSettings; LinksPool = new List <string>(); IndexedLinks = new List <string>(); TurnableLinksList = new List <string>(); InvokeOnInstanceStatusUpdating(WebScrapperBaseStatuses.InstanceLaunching); }
public ShopifyLinksScrapper(WebScrapperBaseSiteEntity requestScrapperSettings, BaseLogger logger, AkeneoBaseWriter akeneo, IBaseShopifyProcessor shopifyProcessor, IBaseProxyService ps, ShareAsaleService _s) { _ps = ps; _ps.OnProxyCallback += OnProxyServiceCallback; ShareSale = _s; Services = new List <IBaseService>(); requestScrappingSite = requestScrapperSettings; _l = logger; _writer = new FilesWriter(); Akeneo = akeneo; Akeneo.OnProductListeningFinished += OnServiceCallback; Shopify = shopifyProcessor; Shopify.OnShopifyIndexationFinished += OnServiceCallback; InstanceStatus = WebScrapperBaseStatuses.InstanceNotLaunched; Services.Add(shopifyProcessor); Services.Add(akeneo); GenerateSitemapFileName(); linksPool = new List <string>(); InvokeOnInstanceStatusUpdating(WebScrapperBaseStatuses.InstanceLaunching); }
public void OnProxyServiceCallback(object sender) { _l.info("Callback proxy service"); if (!ReferenceEquals(Services, null) && Services.Count > 0) { var checkList = new List <BaseServicesStatuses>(); foreach (var Service in Services) { checkList.Add(Service.GetServiceStatus()); } if (checkList.All(e => e.Equals(BaseServicesStatuses.ServiceLaunched))) { if (InstanceStatus.Equals(WebScrapperBaseStatuses.InstanceNotLaunched)) { Akeneo.OnProductListeningFinished -= OnServiceCallback; Shopify.OnShopifyIndexationFinished -= OnServiceCallback; if (_ps.GetServiceStatus().Equals(BaseServicesStatuses.ServiceLaunched)) { LinksScrapperInstance(); InstanceStatus = WebScrapperBaseStatuses.InstanceLaunching; _ps.OnProxyCallback -= OnProxyServiceCallback; } } } } else { _l.info("Cancel, not all service are in finished state!"); } }
public void OnServiceCallback(object sender, BaseServiceResponse eventArgs) { _l.info("Callback from one of the service, checking services statuses..."); if (!ReferenceEquals(Services, null) && Services.Count > 0) { var checkList = new List <BaseServicesStatuses>(); foreach (var Service in Services) { checkList.Add(Service.GetServiceStatus()); } if (checkList.All(e => e.Equals(BaseServicesStatuses.ServiceLaunched))) { if (InstanceStatus.Equals(WebScrapperBaseStatuses.InstanceNotLaunched)) { Akeneo.OnProductListeningFinished -= OnServiceCallback; Shopify.OnShopifyIndexationFinished -= OnServiceCallback; LinksScrapperInstance(); InstanceStatus = WebScrapperBaseStatuses.InstanceLaunching; } } } _l.info("Cancel, not all service are in finished state!"); }
private void InvokeOnInstanceStatusUpdating(WebScrapperBaseStatuses status) { OnInstanceStatusUpdating?.Invoke(this, new BaseScrapperChangeStatusCallbackResult(status, requestScrappingSite.BaseSiteUrl)); }
public BaseScrapperChangeStatusCallbackResult(WebScrapperBaseStatuses siteStatus, string baseSiteUrl) { SiteStatus = siteStatus; BaseSiteUrl = baseSiteUrl; }