Ejemplo n.º 1
0
        public async Task <ApiResult <bool> > UpdateProgress([FromBody] ScrapingInformation scrapingInformation)
        {
            var stopwatch = Stopwatch.StartNew();
            var apiResult = new ApiResult <bool>();

            try
            {
                _logger.Information($"Update progress for scraping information: {JsonConvert.SerializeObject(scrapingInformation)}");
                apiResult.Result = await _scrapingService.UpdateScrapingInformation(scrapingInformation);

                apiResult.Succeed = true;
                _logger.Information("Update progress complete");
            }
            catch (Exception ex)
            {
                apiResult.Succeed = false;
                apiResult.Result  = false;
                apiResult.Error   = ex.ToString();
                _logger.Error($"Update progress error: {ex}");
            }
            stopwatch.Stop();
            apiResult.ExecutionTime = stopwatch.Elapsed.TotalMilliseconds;
            _logger.Information($"Execution time: {apiResult.ExecutionTime}ms");
            return(apiResult);
        }
Ejemplo n.º 2
0
        public async Task <bool> UpdateScrapingInformation(ScrapingInformation scrapingInformation)
        {
            if (scrapingInformation == null)
            {
                throw new ArgumentNullException(nameof(scrapingInformation), "scrapingInformation is null");
            }

            var result = await _unitOfWork.ScrapingInformationRepository.UpdateAsync(new[] { scrapingInformation }) == 1;

            _logger.Information($"Update ScrapingInformation result: {result}");
            return(result);
        }
Ejemplo n.º 3
0
        public async Task <ScrapingInformation> InitScrapingInformation(string sportCode, string providerCode)
        {
            var provider = await _unitOfWork.ProviderRepository.GetProviderBySportCode(sportCode, providerCode);

            if (provider == null)
            {
                _logger.Error($"Can't find any provider {providerCode} with SportCode: {sportCode}");
                return(null);
            }
            var scrapingInformation = new ScrapingInformation
            {
                ProviderId          = provider.Id,
                ScrapeTime          = DateTime.Now,
                Progress            = 0,
                ProgressExplanation = "Not yet started",
                ScrapeStatus        = ScrapeStatus.Pending,
                CreatedAt           = DateTime.Now
            };

            scrapingInformation = await _unitOfWork.ScrapingInformationRepository.InsertThenGet(scrapingInformation);

            _logger.Information($"Scraping info for ({providerCode}/{sportCode}): {JsonConvert.SerializeObject(scrapingInformation)}");
            return(scrapingInformation);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Update scraping progress
        /// </summary>
        /// <param name="scrapingInformation">To update</param>
        /// <returns>True if can update otherwise false</returns>
        public async Task <bool> UpdateScrapingProgress(ScrapingInformation scrapingInformation)
        {
            var url = $"{Constants.WebPortalEndpoint}/Scraping/UpdateScrapingInformation";

            return(await PostAsync <bool>(url, scrapingInformation));
        }
Ejemplo n.º 5
0
        private async Task InitScrapingInformation(string providerCode)
        {
            _scrapeInformation = await WebPortalHelper.InitScrapingInformation(providerCode, Helper.GetSportCode());

            Logger.Information($"Scrape information: Id {_scrapeInformation.Id} - Provider {_scrapeInformation.ProviderId}");
        }