Exemple #1
0
 public void AddFillup(FillupModel fillup)
 {
     App.ViewModel.DefaultVehicle.Fillups.Add(fillup);
     App.ViewModel.SaveChangesToDB();
     calcDefault();
     NotifyPropertyChanged("DefaultVehicle");
 }
Exemple #2
0
 public void DeleteFillup(FillupModel fillup)
 {
     _db.Fillups.DeleteOnSubmit(fillup);
     App.ViewModel.SaveChangesToDB();
     calcDefault();
     NotifyPropertyChanged("DefaultVehicle");
 }
Exemple #3
0
        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));
            }
        }
Exemple #4
0
        // 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;
            }
        }
Exemple #6
0
 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();
            }
        }