public void Delete(SplitRowEdit toDelete) { //Do nothing if this is the last split if (Splits.Count <= 1) return; Splits.Remove(toDelete); }
public void Divide(SplitRowEdit toDivide) { var index = Splits.IndexOf(toDivide); Splits.Insert(index, new SplitRowEdit(this) { PersonalBestTimeAtSplit = toDivide.PersonalBestTimeAtSplit }); toDivide.IsGoldTimeUnknown = true; toDivide.GoldSplitLength = TimeSpan.MaxValue; }
public void LoadFromFile(SplitFile file) { var pbAndGold = file.RunDefinition.Zip(file.PersonalBest.Splits, (d, pb) => new { D = d, Pb = pb }) .Zip(file.SumOfBest.Splits, (a, gs) => new { Definition = a.D, PersonalBest = a.Pb, Gold = gs }).ToArray(); Splits = new ObservableCollection<SplitRowEdit>(pbAndGold.Select(a => { var editRow = new SplitRowEdit(this); editRow.GoldSplitLength = a.Definition.SumOfBestSplit.Time; editRow.IsGoldTimeUnknown = !a.Definition.SumOfBestSplit.IsPrecise; editRow.PersonalBestTimeAtSplit = a.PersonalBest.TimeFromRunStart; editRow.IsPbTimeUnknown = !a.PersonalBest.IsPrecise; editRow.Name = a.Definition.Name; return editRow; })); RunTitle = file.Header; PersonalBestDate = file.PersonalBestDate; }