Exemplo n.º 1
0
        public async Task <CompanyData> InsertCompanyIntoDb(CompanyData company)
        {
            //Number of pages
            company.CompanyState = CompanyState.Processing;

            await _dbContext.SaveChangesAsync();

            var counter = 1;

            var page = await _browsingContextService.OpenPageAsync(company.Url.Replace(".html", $";{counter}.html"));

            //Get all pages for current company
            while (page.Url != company.Url || counter == 1)
            {
                var products = CompanyParsingService.ParseCompanyProducts(company, page).ToArray();
                company.Products.AddRange(products);
                await TaskQueue.QueueBackgroundWorkItemsRangeAsync(products);

                _logger.LogInformation($"CompanyService new products of {company.Name} company, data-chunk was added");

                counter++;
                Thread.Sleep(5000);

                page = await _browsingContextService.OpenPageAsync(company.Url.Replace(".html", $";{counter}.html"));

                if (page != null)
                {
                    continue;
                }
                company.CompanyState = CompanyState.Failed;
                await _dbContext.SaveChangesAsync();

                return(company);
            }

            company.CompanyState = CompanyState.Success;
            company.SyncDate     = DateTime.Now;

            var jsonCompanyDat = new CompanyJson
            {
                ExternalId    = company.ExternalId,
                PortalPageUrl = company.Url,
                SyncDate      = company.SyncDate,
                Name          = company.Name
            };

            var generator          = new JSchemaGenerator();
            var fullCategorySchema = generator.Generate(typeof(CompanyJson)).ToString();
            var fullCategoryJson   = JsonConvert.SerializeObject(jsonCompanyDat);

            company.JsonData       = fullCategoryJson;
            company.JsonDataSchema = fullCategorySchema;

            await _dbContext.SaveChangesAsync();

            return(company);
        }
Exemplo n.º 2
0
        public JsonResult LoadCompany()
        {
            CompanyJson company      = null;
            var         responseTask = client.GetAsync("Company");

            responseTask.Wait();
            var result = responseTask.Result;

            if (result.IsSuccessStatusCode)
            {
                var json = JsonConvert.DeserializeObject(result.Content.ReadAsStringAsync().Result).ToString();
                company = JsonConvert.DeserializeObject <CompanyJson>(json);
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server Error");
            }
            return(Json(company));
        }