Esempio n. 1
0
        public async Task <IEnumerable <string> > CreateInactiveCompanyList()
        {
            var companyRssTuples = await _companyRssRepository.GetAllCompanyRss();

            // Thread-safe, only Add method is used.
            var inactiveCompanyList = new List <string>();

            Parallel.ForEach(companyRssTuples, async companyRssTuple =>
            {
                var rssUri = companyRssTuple.Item2;
                var date   = await _rssParser.GetLastBuildDate(rssUri);
                if (date.Equals(DateTime.MinValue))
                {
                    return;
                }

                var days = (DateTime.Now - date).TotalDays;
                if (days >= _config.InactiveDays)
                {
                    inactiveCompanyList.Add(companyRssTuple.Item1);
                }
            });

            return(inactiveCompanyList);
        }