Ejemplo n.º 1
0
        /// <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;
        }