Наследование: INotifyPropertyChanged
Пример #1
0
        private void RecalculateCurves(object sender, RoutedEventArgs e)
        {
            var o = Car;

            var data = o.AcdData;

            if (data == null)
            {
                NonfatalError.Notify(ToolsStrings.Common_CannotDo_Title, "Data is damaged");
                return;
            }

            Lut torque, power;

            try {
                torque = TorquePhysicUtils.LoadCarTorque(data);
                power  = TorquePhysicUtils.TorqueToPower(torque);
            } catch (Exception ex) {
                NonfatalError.Notify(ToolsStrings.Common_CannotDo_Title, ex);
                return;
            }

            var dlg = new CarTransmissionLossSelector(o, torque.MaxY, power.MaxY);

            dlg.ShowDialog();
            if (!dlg.IsResultOk)
            {
                return;
            }

            torque.TransformSelf(x => x.Y * dlg.Multipler);
            power.TransformSelf(x => x.Y * dlg.Multipler);

            o.SpecsTorqueCurve = new GraphData(torque);
            o.SpecsPowerCurve  = new GraphData(power);

            if (ShowMessage(AppStrings.CarSpecs_CopyNewPowerAndTorque, AppStrings.Common_OneMoreThing, MessageBoxButton.YesNo, "copyNewPowerAndTorque") ==
                MessageBoxResult.Yes)
            {
                // MaxY values were updated while creating new GraphData instances above
                var postfix = dlg.Multipler == 1d ? "*" : "";
                TorqueInput.Text = Format(AppStrings.CarSpecs_Torque_FormatTooltip, torque.MaxY.ToString(@"F0", CultureInfo.InvariantCulture)) + postfix;
                PowerInput.Text  = Format(AppStrings.CarSpecs_Power_FormatTooltip, power.MaxY.ToString(@"F0", CultureInfo.InvariantCulture)) + postfix;
            }
        }
Пример #2
0
        private void RecalculateCurves(object sender, RoutedEventArgs e) {
            var dlg = new CarTransmissionLossSelector(Car);
            dlg.ShowDialog();
            if (!dlg.IsResultOk) return;

            var lossMultipler = 100.0 / (100.0 - dlg.Value);

            Lut torque;
            try {
                torque = TorquePhysicUtils.LoadCarTorque(Car.AcdData);
            } catch (FileNotFoundException) {
                return;
            }

            torque.TransformSelf(x => x.Y * lossMultipler);
            var power = TorquePhysicUtils.TorqueToPower(torque);

            TorqueGraph = new GraphData(torque);
            PowerGraph = new GraphData(power);

            if (ShowMessage(AppStrings.CarSpecs_CopyNewPowerAndTorque, AppStrings.Common_OneMoreThing, MessageBoxButton.YesNo) == MessageBoxResult.Yes) {
                // MaxY values were updated while creating new GraphData instances above
                TorqueInput.Text = Format(AppStrings.CarSpecs_Torque_FormatTooltip, torque.MaxY.ToString(@"F0", CultureInfo.InvariantCulture));
                PowerInput.Text = Format(AppStrings.CarSpecs_Power_FormatTooltip, power.MaxY.ToString(@"F0", CultureInfo.InvariantCulture));
            }
        }