Exemplo n.º 1
0
        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!");
     }
 }
Exemplo n.º 4
0
 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!");
 }
Exemplo n.º 5
0
 private void InvokeOnInstanceStatusUpdating(WebScrapperBaseStatuses status)
 {
     OnInstanceStatusUpdating?.Invoke(this, new BaseScrapperChangeStatusCallbackResult(status, requestScrappingSite.BaseSiteUrl));
 }
 public BaseScrapperChangeStatusCallbackResult(WebScrapperBaseStatuses siteStatus, string baseSiteUrl)
 {
     SiteStatus  = siteStatus;
     BaseSiteUrl = baseSiteUrl;
 }