private void SaveRoute(object parameter = null) { string errMsg = ValidateRouteParams(); try { if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } switch (routeSetClimbMode) { case ClimbMode.Training: errMsg = rocksOnRouteViewModel.ValidateRocksOnTrainingRoute(); if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } TrainingRoute newTrainingRoute = CreateTrainingRouteFromUi(); rocksOnRouteViewModel.SaveRocksOnTrainingRoute(newTrainingRoute); break; case ClimbMode.Boulder: default: errMsg = rocksOnRouteViewModel.ValidateRocksOnBoulderRoute(); if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } BoulderRoute newBoulderRoute = CreateBoulderRouteFromUi(); rocksOnRouteViewModel.SaveRocksOnBoulderRoute(newBoulderRoute); break; } UiHelper.NotifyUser(routeSetClimbMode.ToString() + " Route is Saved."); // Switch to Routes page Routes routesPage = new Routes(routeSetClimbMode); this.NavigationService.Navigate(routesPage); } catch (Exception ex) { UiHelper.NotifyUser("Error when saving the route:" + Environment.NewLine + ex.ToString()); } }