public void AddFillup(FillupModel fillup) { App.ViewModel.DefaultVehicle.Fillups.Add(fillup); App.ViewModel.SaveChangesToDB(); calcDefault(); NotifyPropertyChanged("DefaultVehicle"); }
public void DeleteFillup(FillupModel fillup) { _db.Fillups.DeleteOnSubmit(fillup); App.ViewModel.SaveChangesToDB(); calcDefault(); NotifyPropertyChanged("DefaultVehicle"); }
private void FillupList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { FillupModel fillup = (sender as ListBox).SelectedItem as FillupModel; if (fillup != null) { // unset the selection and bring user to edit fillup (sender as ListBox).SelectedItem = null; NavigationService.Navigate(new Uri(string.Format("//Views/FillupPage.xaml?fillupId={0}", Uri.EscapeUriString(fillup.FillupId.ToString())), UriKind.Relative)); } }
// Called when default vehicle is set, calculates MPGs and other stats public void calcDefault() { OverallMPG = 0; OverallCostMile = 0; OverallMileFill = 0; OverallDaysFill = 0; FillupModel previousFillup = new FillupModel(); DefaultFillups = new ObservableCollection <FillupModel>(); int i = 0; double statMileDiff = 0; double statTotalVol = 0; TimeSpan statDayDiff = new TimeSpan(); double statTotalCost = 0; foreach (FillupModel f in (from fu in DefaultVehicle.Fillups orderby fu.FillupDate descending select fu)) { DefaultFillups.Add(f); if (previousFillup.OdoReading != 0.0D && previousFillup.VolReading != 0) { previousFillup.FillupMPG = (previousFillup.OdoReading - f.OdoReading) / previousFillup.VolReading; if (i <= 7) { statMileDiff += (previousFillup.OdoReading - f.OdoReading); statTotalVol += (f.VolReading); statDayDiff += (previousFillup.FillupDate - f.FillupDate); statTotalCost += (previousFillup.PriceReading * previousFillup.VolReading); i++; } } previousFillup = f; } if (statTotalVol > 0 && statMileDiff > 0) { OverallMPG = statMileDiff / statTotalVol; OverallCostMile = statTotalCost / statMileDiff; OverallMileFill = statMileDiff / i; OverallDaysFill = statDayDiff.Days / i; } OverallFillupCount = i; }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (App.ViewModel.AllVehicles.Count > 0) { Welcome_Panel.Visibility = Visibility.Collapsed; Form_Panel.Visibility = Visibility.Visible; if (!State.ContainsKey("WentToDatePicker") && NavigationContext.QueryString.ContainsKey("fillupId")) { if (App.ViewModel.DefaultFillups.Count(f => f.FillupId == int.Parse(NavigationContext.QueryString["fillupId"])) == 1) { _editFillup = App.ViewModel.DefaultFillups.First(f => f.FillupId == int.Parse(NavigationContext.QueryString["fillupId"])); if (_editFillup != null) { // Editing vehicle... _editMode = true; PageTitle_Edit.Visibility = Visibility.Visible; PageTitle_Add.Visibility = Visibility.Collapsed; FillupDeleteButton.Visibility = Visibility.Visible; FillupDate.Value = new DateTime(_editFillup.FillupDate.Year, _editFillup.FillupDate.Month, _editFillup.FillupDate.Day); FillupTime.Value = new DateTime(_editFillup.FillupDate.Year, _editFillup.FillupDate.Month, _editFillup.FillupDate.Day, _editFillup.FillupDate.Hour, _editFillup.FillupDate.Minute, _editFillup.FillupDate.Second); FillupPriceInput.Text = _editFillup.PriceReading.ToString(); FillupVolInput.Text = _editFillup.VolReading.ToString(); FillupOdoInput.Text = _editFillup.OdoReading.ToString(); } } else if (NavigationContext.QueryString["fillupId"] != null) { NavigationService.Navigate(new Uri("//Views/MainPage.xaml", UriKind.Relative)); } } } else { Form_Panel.Visibility = Visibility.Collapsed; Welcome_Panel.Visibility = Visibility.Visible; } }
public void EditFillup(FillupModel fillup) { App.ViewModel.SaveChangesToDB(); calcDefault(); NotifyPropertyChanged("DefaultVehicle"); }
private void fillupSave_Click(object sender, System.Windows.RoutedEventArgs e) { DateTime dT = (DateTime)FillupDate.Value; dT.Subtract(dT.TimeOfDay); dT = dT.AddHours(FillupTime.Value.Value.Hour); dT = dT.AddMinutes(FillupTime.Value.Value.Minute); if (FillupDate.Value == null) { MessageBox.Show("Date value required."); return; } if (FillupTime.Value == null) { MessageBox.Show("Time value required."); return; } if (string.IsNullOrWhiteSpace(FillupOdoInput.Text)) { MessageBox.Show("The odometer reading is required."); return; } if (string.IsNullOrWhiteSpace(FillupVolInput.Text)) { MessageBox.Show("The gallons value is required."); return; } if (string.IsNullOrWhiteSpace(FillupPriceInput.Text)) { MessageBox.Show("The price per gallon value is required."); return; } float val; if (!float.TryParse(FillupOdoInput.Text, out val)) { MessageBox.Show("The odometer reading could not be converted to a number."); return; } ; if (!float.TryParse(FillupVolInput.Text, out val)) { MessageBox.Show("The gallons value could not be converted to a number."); return; } ; if (!float.TryParse(FillupPriceInput.Text, out val)) { MessageBox.Show("The price per gallon value could not be converted to a number."); return; } ; int editId = _editMode ? _editFillup.FillupId : -1; if ((from f in App.ViewModel.DefaultFillups where f.FillupDate == dT && f.FillupId != editId select f.FillupId).Count() > 0) { MessageBox.Show("An entry for this time already exists"); return; } if ((from f in App.ViewModel.DefaultFillups where f.FillupDate <= dT && f.OdoReading >= double.Parse(FillupOdoInput.Text) && f.FillupId != editId select f.FillupId).Count() > 0) { MessageBox.Show("An entry exists for a previous date with a higher odometer reading. Please check entry and/or fillup history."); return; } if ((from f in App.ViewModel.DefaultFillups where f.FillupDate >= dT && f.OdoReading <= double.Parse(FillupOdoInput.Text) && f.FillupId != editId select f.FillupId).Count() > 0) { MessageBox.Show("An entry exists for a future date with a lower odometer reading. Please check entry and/or fillup history."); return; } // Everything checks out, lets do it! if (!_editMode) { FillupModel _newFillup = new FillupModel(); _newFillup.FillupDate = dT; _newFillup.PriceReading = double.Parse(FillupPriceInput.Text); _newFillup.VolReading = double.Parse(FillupVolInput.Text); _newFillup.OdoReading = double.Parse(FillupOdoInput.Text); App.ViewModel.AddFillup(_newFillup); } else { _editFillup.FillupDate = dT; _editFillup.PriceReading = double.Parse(FillupPriceInput.Text); _editFillup.VolReading = double.Parse(FillupVolInput.Text); _editFillup.OdoReading = double.Parse(FillupOdoInput.Text); App.ViewModel.EditFillup(_editFillup); } // Return to the main page. if (NavigationService.CanGoBack) { NavigationService.GoBack(); } }