示例#1
0
        public bool DoesCompanyFinancialsExist(ILogger log, string InputVAT)
        {
            CompanyFinancials cf = _context.CompanyFinancials.Where(CF => CF.vat == InputVAT).FirstOrDefault();

            if (cf != null)
            {
                log.LogInformation($"VAT {InputVAT} FOUND");
                return(true);
            }
            log.LogInformation($"VAT {InputVAT} NOT FOUND");
            return(false);
        }
示例#2
0
        public async Task RetrieveCompanyFinancialsFromSourceAsync(ILogger log, string InputVAT)
        {
            log.LogInformation("RetrieveCompanyFinancialsFromSourceAsync");
            string     CompanyFinancialsApiBase       = Environment.GetEnvironmentVariable("CompanyFinancialsApiBase");
            string     CompanyFinancialsApiPathPrefix = Environment.GetEnvironmentVariable("CompanyFinancialsApiPathPrefix");
            string     CompanyFinancialsApiPathSuffix = Environment.GetEnvironmentVariable("CompanyFinancialsApiPathSuffix");
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(CompanyFinancialsApiBase);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json")
                );
            client.DefaultRequestHeaders.Add("API_ID", Environment.GetEnvironmentVariable("api-appid"));
            client.DefaultRequestHeaders.Add("API_KEY", Environment.GetEnvironmentVariable("api-appkey"));
            CancellationToken   cts;
            HttpResponseMessage response = await client.GetAsync(CompanyFinancialsApiPathPrefix + InputVAT + CompanyFinancialsApiPathSuffix);

            //HttpResponseMessage response = await client.GetAsync("https://kvaesdataapi.blob.core.windows.net/sample/response.json");
            if (response.IsSuccessStatusCode)
            {
                CompanyFinancialsRoot result = await response.Content.ReadAsAsync <CompanyFinancialsRoot>();

                string ResultYear;
                foreach (CompanyFinancialsYear details in result.list)
                {
                    if (!DoesCompanyFinancialsYearExist(log, InputVAT, details.year.ToString()))
                    {
                        ResultYear = details.year.ToString();
                        log.LogInformation($"Syncing year {ResultYear} of VAT {InputVAT}");
                        Ratios            ratios = details.ratios;
                        CompanyFinancials CF     = new CompanyFinancials
                        {
                            id                    = Guid.NewGuid(),
                            vat                   = InputVAT,
                            year                  = ResultYear,
                            employees             = ParseCompanyFinancialsDetail(details.employees),
                            turnover              = ParseCompanyFinancialsDetail(details.turnover),
                            equity                = ParseCompanyFinancialsDetail(details.equity),
                            current_assets        = ParseCompanyFinancialsDetail(details.current_assets),
                            tangible_fixed_assets = ParseCompanyFinancialsDetail(details.tangible_fixed_assets),
                            gain_loss_period      = ParseCompanyFinancialsDetail(details.gain_loss_period),

                            net_assets                   = ParseCompanyFinancialsDetail(ratios.net_assets),
                            return_on_equity             = ParseCompanyFinancialsDetail(ratios.return_on_equity),
                            gross_operating_sales_margin = ParseCompanyFinancialsDetail(ratios.gross_operating_sales_margin),
                            net_operating_sales_margin   = ParseCompanyFinancialsDetail(ratios.net_operating_sales_margin),
                            rotation_fixed_assets        = ParseCompanyFinancialsDetail(ratios.rotation_fixed_assets),
                            total_assets_to_turnover     = ParseCompanyFinancialsDetail(ratios.total_assets_to_turnover),
                            current_ratio                = ParseCompanyFinancialsDetail(ratios.current_ratio),
                            quick_ratio                  = ParseCompanyFinancialsDetail(ratios.quick_ratio),
                            immediate_liquidity          = ParseCompanyFinancialsDetail(ratios.immediate_liquidity),
                            write_downs_to_added_value   = ParseCompanyFinancialsDetail(ratios.write_downs_to_added_value),
                            net_cash                    = ParseCompanyFinancialsDetail(ratios.net_cash),
                            net_cash_ratio              = ParseCompanyFinancialsDetail(ratios.net_cash_ratio),
                            net_current_assets          = ParseCompanyFinancialsDetail(ratios.net_current_assets),
                            cash_flow                   = ParseCompanyFinancialsDetail(ratios.cash_flow),
                            number_days_customer_credit = ParseCompanyFinancialsDetail(ratios.number_days_customer_credit),
                            number_days_supplier_credit = ParseCompanyFinancialsDetail(ratios.number_days_supplier_credit),
                            investments                 = ParseCompanyFinancialsDetail(ratios.investments),
                            dfl = ParseCompanyFinancialsDetail(ratios.dfl),
                            own_assets_to_capital             = ParseCompanyFinancialsDetail(ratios.own_assets_to_capital),
                            cash_flow_to_debt                 = ParseCompanyFinancialsDetail(ratios.cash_flow_to_debt),
                            cash_flow_to_long_term_debt       = ParseCompanyFinancialsDetail(ratios.cash_flow_to_long_term_debt),
                            long_term_debt_to_short_term_debt = ParseCompanyFinancialsDetail(ratios.long_term_debt_to_short_term_debt),
                            debt_repayment                 = ParseCompanyFinancialsDetail(ratios.debt_repayment),
                            self_financing_degree          = ParseCompanyFinancialsDetail(ratios.self_financing_degree),
                            outstanding_tax_to_liabilities = ParseCompanyFinancialsDetail(ratios.outstanding_tax_to_liabilities),
                            added_value = ParseCompanyFinancialsDetail(ratios.added_value),
                            payroll_costs_to_added_value     = ParseCompanyFinancialsDetail(ratios.payroll_costs_to_added_value),
                            financial_charges_to_added_value = ParseCompanyFinancialsDetail(ratios.financial_charges_to_added_value),
                            net_profit_to_added_value        = ParseCompanyFinancialsDetail(ratios.net_profit_to_added_value),
                            added_value_to_operating_income  = ParseCompanyFinancialsDetail(ratios.added_value_to_operating_income),
                            investment_ratio         = ParseCompanyFinancialsDetail(ratios.investment_ratio),
                            added_value_per_employee = ParseCompanyFinancialsDetail(ratios.added_value_per_employee)
                        };
                        var entity = await _context.CompanyFinancials.AddAsync(CF, cts);

                        await _context.SaveChangesAsync(cts);
                    }
                }
            }
        }