Exemplo n.º 1
0
        // Ta fram statistik över antalet dagar för borttagna annonser av olika typer
        public IDictionary <string, List <int> > GetAgeDeletedAdsStatistics(List <string> eqTypeNames, List <string> adTypeNames)
        {
            var statistics = new Dictionary <string, List <int> >();

            var removedAds        = _marketData.GetRemovedAds();
            var removedEquipments = _marketData.GetRemovedEquipments();

            var eqTypeStatistics = new List <int>();

            // Räkna antalet dagar för gamla annonser där utrustningen är ospecificerad
            foreach (var adTypeName in adTypeNames)
            {
                var ads = removedAds.Where(a => a.AdvType.Name == adTypeName)
                          .Where(a => a.RemovedEqms.Count == 0);
                eqTypeStatistics.Add(CalculateAverageNrDays(ads));
            }
            statistics.Add("Odefinerade", eqTypeStatistics);

            // Räkna antalet dagar för gamla annonser där utrustningen är specificerad
            foreach (var eqTypeName in eqTypeNames)
            {
                eqTypeStatistics = new List <int>();

                var equipments = removedEquipments.Where(e => e.EqType.Name == eqTypeName);

                foreach (var adTypeName in adTypeNames)
                {
                    var ads = removedAds.Where(a => a.AdvType.Name == adTypeName)
                              .Where(a => a.RemovedEqms.Count == 1)
                              .Where(a => a.RemovedEqms.First().EqType.Name == eqTypeName);
                    eqTypeStatistics.Add(CalculateAverageNrDays(ads));
                }
                statistics.Add(eqTypeName, eqTypeStatistics);
            }

            eqTypeStatistics = new List <int>();

            // Räkna antalet dagar för gamla annonser där utrustningen är ett paket
            foreach (var adTypeName in adTypeNames)
            {
                var ads = removedAds.Where(a => a.AdvType.Name == adTypeName)
                          .Where(a => a.RemovedEqms.Count == 2);
                eqTypeStatistics.Add(CalculateAverageNrDays(ads));
            }
            statistics.Add("Paket", eqTypeStatistics);

            return(statistics);
        }