コード例 #1
0
        public async Task ComputeCompanyStatistics()
        {
            numOfDrivers = await _driverRepository.CountAsync();

            IEnumerable <Leg> legs = await _legRepository.ListAsync();

            pickups     = legs.Select(leg => leg.NumOfPassengersPickedUp).Sum();
            milesDriven = legs.Select(leg => leg.Distance).Sum();

            if (await _legRepository.CountAsync() > 0)
            {
                averagePickupDelay = legs.Select(leg =>
                                                 leg.StartTime.Subtract(leg.PickupRequestTime.GetValueOrDefault(leg.StartTime)).TotalMinutes).Average();
            }

            totalFares = legs.Select(leg => leg.Fare * leg.NumOfPassengersAboard).Sum();
            totalCosts = legs.Select(leg => leg.GetTotalFuelCost()).Sum();
            netProfit  = totalFares - totalCosts;
        }