Feature #69
geschlossenTraining.DistanceFrom/DistanceTo zu einem Feld DistanceDriven zusammenfassen
0%
Beschreibung
Kontext¶
Training.DistanceFrom/DistanceTo (beide decimal, Meter) wirken verwirrend: DistanceFrom ist bei allen aktuell aufgezeichneten Trainings immer 0 (die Aufzeichnung ist das Trainings-eigene "Wegmessgerät", startet immer bei 0 - siehe Kommentar in FreiesTrainingWindowViewModel.cs). Geprüft: keine Stelle im Code liest DistanceFrom oder DistanceTo direkt - beide werden ausschließlich für die Differenzbildung in der Computed Property Training.DistanceDriven => DistanceTo - DistanceFrom verwendet.
Auch der einzige denkbare Sonderfall (sehr alte, mehretappige topografische Trainings vor #47, bei denen DistanceFrom theoretisch ungleich 0 gewesen sein könnte) ist unkritisch: die tatsächliche geografische Position wird pro TrainingPoint bereits separat über Latitude/Longitude gespeichert (seit #44), unabhängig von DistanceFrom/DistanceTo.
Vorschlag¶
DistanceFrom/DistanceTo durch ein einziges Feld DistanceDriven ersetzen (Name der bisherigen Computed Property übernehmen, jetzt aber direkt gespeichert statt berechnet):
Training.Persistant.cs:DistanceFrom/DistanceToentfernen,DistanceDriven(decimal) als echte Spalte ergänzen.Training.cs: Computed PropertyDistanceDrivenentfernen (wird jetzt gespeichert),DistanceDrivenKmbleibt unverändert (rechnet weiterhinDistanceDriven / 1000).- Migration:
DistanceDriven = DistanceTo - DistanceFromeinmalig für Bestandsdaten berechnen (Rename+Konvertierung statt Drop+Add, analog zu #66/#67), dann beide alten Spalten droppen. - Schreibstellen in
FreiesTrainingWindowViewModel.cs(KonstruktorDistanceFrom = 0, Live-TickTraining.DistanceTo = distanceMeters,Training.cs.RecalculateRedundantValues()) auf das eine Feld umstellen.
Kein einziger Aufrufer muss geändert werden - training.DistanceDriven/DistanceDrivenKm werden bereits überall so verwendet (CSV-/TCX-Export), nur die interne Speicherung ändert sich von "berechnet aus zwei Spalten" zu "direkt gespeichert".
JH Von Julius Haman vor 7 Tagen aktualisiert
- Status wurde von Neu zu Erledigt geändert
JH Von Julius Haman vor 7 Tagen aktualisiert
- Zielversion wurde auf ErControl 3.1.1 gesetzt