/// <summary> /// Validates the specified Fillup and then, if it is valid, adds it to /// Car.FillupHistory collection. /// </summary> /// <param name="fillup">The fill-up to save.</param> /// <param name="errorCallback">The action to execute if the storage /// attempt fails.</param> /// <returns>The validation results.</returns> public static SaveResult SaveFillup(Fillup fillup, Action errorCallback) { var lastReading = Car.FillupHistory.Count > 0 ? Car.FillupHistory.First().OdometerReading : Car.InitialOdometerReading; fillup.DistanceDriven = fillup.OdometerReading - lastReading; var saveResult = new SaveResult(); var validationResults = fillup.Validate(); if (validationResults.Count > 0) { saveResult.SaveSuccessful = false; saveResult.ErrorMessages = validationResults; } else { Car.FillupHistory.Insert(0, fillup); saveResult.SaveSuccessful = true; SaveCar(delegate { saveResult.SaveSuccessful = false; errorCallback(); }); } return(saveResult); }
/// <summary> /// Initializes the view and its data context. /// </summary> private void InitializePageState() { // CarHeader.DataContext = CarDataStore.Car; DataContext = _currentFillup = State.ContainsKey(CURRENT_FILLUP_KEY) ? (Fillup)State[CURRENT_FILLUP_KEY] : new Fillup { Date = DateTime.Now }; _hasUnsavedChanges = State.ContainsKey(HAS_UNSAVED_CHANGES_KEY) && (bool)State[HAS_UNSAVED_CHANGES_KEY]; }
/// <summary> /// Validates the specified Fillup and then, if it is valid, adds it to /// Car.FillupHistory collection. /// </summary> /// <param name="fillup">The fill-up to save.</param> /// <param name="errorCallback">The action to execute if the storage /// attempt fails.</param> /// <returns>The validation results.</returns> public static SaveResult SaveFillup(Fillup fillup, Action errorCallback) { var lastReading = Car.FillupHistory.Count > 0 ? Car.FillupHistory.First().OdometerReading : Car.InitialOdometerReading; fillup.DistanceDriven = fillup.OdometerReading - lastReading; var saveResult = new SaveResult(); var validationResults = fillup.Validate(); if (validationResults.Count > 0) { saveResult.SaveSuccessful = false; saveResult.ErrorMessages = validationResults; } else { Car.FillupHistory.Insert(0, fillup); saveResult.SaveSuccessful = true; SaveCar(delegate { saveResult.SaveSuccessful = false; errorCallback(); }); } return saveResult; }