Projekt

Allgemein

Profil

Aktionen

Feature #69

geschlossen
JH

Training.DistanceFrom/DistanceTo zu einem Feld DistanceDriven zusammenfassen

Feature #69: Training.DistanceFrom/DistanceTo zu einem Feld DistanceDriven zusammenfassen

Von Julius Haman vor 7 Tagen hinzugefügt. Vor 7 Tagen aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
Beginn:
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:
Gefunden in Version:

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/DistanceTo entfernen, DistanceDriven (decimal) als echte Spalte ergänzen.
  • Training.cs: Computed Property DistanceDriven entfernen (wird jetzt gespeichert), DistanceDrivenKm bleibt unverändert (rechnet weiterhin DistanceDriven / 1000).
  • Migration: DistanceDriven = DistanceTo - DistanceFrom einmalig für Bestandsdaten berechnen (Rename+Konvertierung statt Drop+Add, analog zu #66/#67), dann beide alten Spalten droppen.
  • Schreibstellen in FreiesTrainingWindowViewModel.cs (Konstruktor DistanceFrom = 0, Live-Tick Training.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".

Aktionen

Auch abrufbar als: PDF Atom