Exemplo n.º 1
0
        // InitializeSaveRouteCommands() has to be called after initializing rocksOnWallViewModel
        private void InitializeSaveRouteCommands()
        {
            Func <string> validateRoute;

            switch (routeSetClimbMode)
            {
            case ClimbMode.Training:
                validateRoute = () =>
                                rocksOnRouteViewModel.ValidateRocksOnTrainingRoute();
                break;

            case ClimbMode.Boulder:
            default:
                validateRoute = () =>
                                rocksOnRouteViewModel.ValidateRocksOnBoulderRoute();
                break;
            }

            Predicate <object> CanSaveRoute = x =>
            {
                bool   isRouteValid  = true;
                string validationMsg = ValidateRouteParams();

                if (string.IsNullOrEmpty(validationMsg))
                {
                    validationMsg = validateRoute();
                }

                isRouteValid = string.IsNullOrEmpty(validationMsg);
                routeSetViewModel.RouteValidationMsg = validationMsg;
                return(isRouteValid);
            };

            btnConfirmRouteSet.Command = new RelayCommand(SaveRoute, CanSaveRoute);
            btnCancelRouteSet.Command  = new RelayCommand(CancelSaveRoute, CanCancelSaveRoute);
        }