/// <summary> /// Display values stored in settings in controls. Updates split grid. /// </summary> private void SystemSettings_LoadFields() { SplitsV2 settings = ZAMsettings.Settings.SplitsV2; ckbShowSplits.Checked = settings.ShowSplits; tbSplitDistance.Text = settings.SplitDistance.ToString(); if (cbSplitUom.Items.Contains(settings.SplitDistanceUom)) { cbSplitUom.SelectedItem = settings.SplitDistanceUom; } lblGoalDistanceUom.Text = settings.SplitDistanceUom.Value; ckbCalculateGoal.Checked = settings.CalculateGoal; dtpGoalTime.Value = new DateTime(2021, 1, 1, settings.GoalTime.Hours, settings.GoalTime.Minutes, settings.GoalTime.Seconds); tbGoalDistance.Text = settings.GoalDistance.ToString(); lblGoalSpeed.Text = $"Goal Speed {lblGoalDistanceUom.Text}/h:"; lblGoalSpeedValue.Text = $"{settings.GoalSpeed}"; ckbCustomized.Checked = settings.Customized; this.LoadSplitChart(); }
private ZAMsettings() { UserProfiles = new SortedList <string, UserProfile>(); Collectors = new SortedList <string, Collector>(); //Splits = new Splits(); Laps = new Lap(); SplitsV2 = new SplitsV2(); }
public SplitV2(double splitDistance, TimeSpan splitTime, double splitSpeed, double totalDistance, TimeSpan totalTime, double averageSpeed, SplitsV2 parentSplitContainer) { this.SplitDistance = splitDistance; this.SplitTime = splitTime; this.SplitSpeed = splitSpeed; this.TotalDistance = totalDistance; this.TotalTime = totalTime; this.AverageSpeed = averageSpeed; this.ParentSplitContainer = parentSplitContainer; }
public void Start() { if (!m_started) { m_splits = ZAMsettings.Settings.SplitsV2; //m_splitGoals = SplitsManagerV2.GetSplitGoals(); // returns null if no goals m_eventCount = 0; m_splitCount = 0; m_startTime = DateTime.Now; m_splitStartTime = m_startTime; m_lastSplitMeters = 0; m_started = true; } }
/// <summary> /// Recalculate splits based upon user selections. This wipes out any customizations. /// </summary> //private void RecalculateSplits() //{ // ZAMsettings.Settings.SplitsV2.Splits.Clear(); // ZAMsettings.Settings.SplitsV2.GoalSpeed = 0; // SplitsManagerV2.SplitGoals splitGoals = SplitsManagerV2.GetSplitGoals(); // if (splitGoals == null) // return; // foreach (SplitsManagerV2.SplitGoal goal in splitGoals.Goals) // { // ZAMsettings.Settings.SplitsV2.Splits.Add(new SplitV2(goal.SplitDistance, goal.SplitTime, 0.0, goal.TotalDistance, goal.TotalTime, 0.0)); // } // ZAMsettings.Settings.SplitsV2.GoalSpeed = splitGoals.GoalSpeed; //} private void SaveSplits() { DataTable table = (DataTable)dgvSplits.DataSource; SplitsV2 splits = ZAMsettings.Settings.SplitsV2; splits.Splits.Clear(); foreach (DataRow row in ((DataTable)dgvSplits.DataSource).Rows) { if (this.IsNullorDBNull(row.Field <object>(SplitDistanceCol)) > 0 || this.IsNullorDBNull(row.Field <object>(SplitTimeCol)) > 0) { continue; } ZAMsettings.Settings.SplitsV2.Splits.Add(new SplitV2( row.Field <double>(SplitDistanceCol), row.Field <TimeSpan>(SplitTimeCol), row.Field <double>(SplitSpeedCol), row.Field <double>(TotalDistanceCol), row.Field <TimeSpan>(TotalTimeCol), row.Field <double>(AverageSpeedCol), splits )); } splits.Customized = true; // the last split row has the totals int lastSplitRow = splits.Splits.Count - 1; if (lastSplitRow >= 0) { SplitV2 lastSplit = splits.Splits[lastSplitRow]; // Setting of these values to invalid numbers can throw an exception splits.GoalDistance = lastSplit.TotalDistance; splits.GoalTime = lastSplit.TotalTime; splits.GoalSpeed = lastSplit.AverageSpeed; } else { throw new FormatException("No goals entered."); } }