Exemple #1
0
        private async Task <string> GetAnnualReportDataXml(ElasticAnnualReportModelDTO report)
        {
            var doc = report?.dokumenter?
                      .FirstOrDefault(c => c.dokumentType == "AARSRAPPORT" &&
                                      c.dokumentMimeType == "application/xml");

            if (doc == null)
            {
                return(null);
            }

            using (IWebClient client = this.webClientFactory.GetGzipWebClient())
            {
                client.Encoding = Encoding.UTF8;
                var result = await client.DownloadStringTaskAsync(doc.dokumentUrl);

                return(result);
            };
        }
Exemple #2
0
        private async Task <AnnualReportXMLData> GetAnnualReportData(ElasticAnnualReportModelDTO report)
        {
            var data = await GetAnnualReportDataXml(report);

            if (data == null)
            {
                return(null);
            }

            var xdoc = XDocument.Parse(data);

            var elements = xdoc?.Root?.Elements();

            if (elements == null || !elements.Any())
            {
                return(null);
            }

            var equityVal          = elements.FirstOrDefault(c => c.Name.LocalName.Equals("Equity"))?.Value;
            var profitLossVal      = elements.FirstOrDefault(c => c.Name.LocalName.Equals("ProfitLoss"))?.Value;
            var currentAssetsVal   = elements.FirstOrDefault(c => c.Name.LocalName.Equals("CurrentAssets"))?.Value;
            var assetsVal          = elements.FirstOrDefault(c => c.Name.LocalName.Equals("Assets"))?.Value;
            var grossProfitLossVal = elements.FirstOrDefault(c => c.Name.LocalName.Equals("GrossProfitLoss"))?.Value;

            var dto = new AnnualReportXMLData()
            {
                RegistrationNumber = report.cvrNummer.ToString(),
                Equity             = !string.IsNullOrWhiteSpace(equityVal) ? decimal.Parse(equityVal) : (decimal?)null,
                Assets             = !string.IsNullOrWhiteSpace(assetsVal) ? decimal.Parse(assetsVal) : (decimal?)null,
                CurrentAssets      = !string.IsNullOrWhiteSpace(currentAssetsVal) ? decimal.Parse(currentAssetsVal) : (decimal?)null,
                ProfitLoss         = !string.IsNullOrWhiteSpace(profitLossVal) ? decimal.Parse(profitLossVal) : (decimal?)null,
                GrossProfitLoss    = !string.IsNullOrWhiteSpace(grossProfitLossVal) ? decimal.Parse(grossProfitLossVal) : (decimal?)null
            };

            return(dto);
        }