示例#1
0
            public IEnumerable<MatchedPolicy> Sort(IEnumerable<MatchedPolicy> policies) {
                if(policies == null) throw new ArgumentNullException("policies");

                if(!policies.Any()) return policies;
                policies = Filter(policies);
                var speeds = OrderStatisticService.QuerySpeed(policies.Select(p => p.Provider).Distinct(), m_carrier);
                policies.ForEach(p => p.SetSpeed(speeds[p.Provider]));

                if(policies.Count() < 2) return policies;
                var result = policies.ToList();
                result.Sort(comparer);
                return result;
            }
示例#2
0
            public IEnumerable<MatchedPolicy> Sort(IEnumerable<MatchedPolicy> policies) {
                if(policies == null) throw new ArgumentNullException("policies");

                policies = policies.Where(p => p.PolicyType == PolicyType.Special).ToList();
                if(!policies.Any()) return policies;
                var statisticInfos = OrderStatisticService.QuerySupplyStatisticInfo(policies.Select(p => p.Provider).Distinct(), m_departure, m_arrival);
                policies.ForEach(p => p.Statistics = statisticInfos[p.Provider]);

                if(policies.Count() < 2) return policies;
                var result = policies.ToList();
                result.Sort(comparer);
                return result;
            }