コード例 #1
0
ファイル: App.xaml.cs プロジェクト: bgourlie/petroledger
        public static VehicleAnalysis GetVehicleAnalysis(Vehicle vehicle)
        {
            Debug.WriteLine("GetVehicleAnalysis({0}) called", vehicle.VehicleName);
            if (!__analysisCache.ContainsKey(vehicle))
            {
                Debug.WriteLine("Analysis doesn't exist in the dict, generating and adding it.");
                __analysisCache.Add(vehicle,
                                    vehicle.GenerateVehicleAnalysis(UnitOfMeasure.DefaultDistanceUnit,
                                                                    UnitOfMeasure.DefaultVolumeUnit));

                if (!__analysisCacheIsStale.ContainsKey(vehicle))
                    __analysisCacheIsStale.Add(vehicle, false);
                else
                    __analysisCacheIsStale[vehicle] = false;

                return __analysisCache[vehicle];
            }

            if (__analysisCacheIsStale[vehicle])
            {
                Debug.WriteLine("Analysis for {0} is stale.  Regenerating.", vehicle.VehicleName);
                __analysisCache[vehicle] = vehicle.GenerateVehicleAnalysis(UnitOfMeasure.DefaultDistanceUnit,
                                                                           UnitOfMeasure.DefaultVolumeUnit);
                __analysisCacheIsStale[vehicle] = false;
            }

            return __analysisCache[vehicle];
        }