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

            var currentAds        = _marketData.GetCurrentAds();
            var currentEquipments = _marketData.GetCurrentEquipments();

            var eqTypeStatistics = new List <int>();

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

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

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

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

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


            return(statistics);
        }