public HandleCompanyList(ILogger <HandleCompanyList> logger,
                          IDBConnectionHandler <CompanyDetailMd>
                          dbconCompany, DownloadListedFirms dlf)
 {
     _dbconCompany      = dbconCompany;
     _companyConnection = _dbconCompany.ConnectToDatabase("CompanyDetail");
     _dlf    = dlf;
     _logger = logger;
 }
        private async Task <List <CompanyDetail> > ObtainAndCleanExternalData(DownloadListedFirms dataSource)
        {
            var allCompanies = await dataSource.GetCompanyList();

            allCompanies = allCompanies.Where(ac => !string.IsNullOrEmpty(ac.Ticker) &&
                                              !string.IsNullOrEmpty(ac.SimId) &&
                                              !string.IsNullOrEmpty(ac.Name))
                           .OrderBy(ac => ac.Ticker).ToList();
            CompanyDetails = allCompanies;
            return(allCompanies);
        }
        public async Task <List <CompanyDetail> > GetAllCompanines()
        {
            if (CompanyDetails != null && CompanyDetails.Count != 0)
            {
                return(CompanyDetails);
            }
            var dataSource   = new DownloadListedFirms(_logger);
            var allCompanies = await ObtainAndCleanExternalData(dataSource);

            foreach (var company in allCompanies)
            {
                company.Name = company.Name.Transform(To.LowerCase, To.TitleCase);
            }
            CompanyDetails = allCompanies;
            return(allCompanies);
        }