public ActionResult Edit(int id, IFormCollection collection, ExerciseEditViewModel viewModel)
        {
            try
            {
                using (SqlConnection conn = Connection)
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = @"UPDATE Exercise
                                            SET ExerciseName = @exerciseName,
                                                ExerciseLang = @exerciseLang
                                                
                                            WHERE Id = @id";
                        cmd.Parameters.Add(new SqlParameter("@exerciseName", viewModel.exercise.ExerciseName));
                        cmd.Parameters.Add(new SqlParameter("@exerciseLang", viewModel.exercise.ExerciseLang));
                        cmd.Parameters.Add(new SqlParameter("@id", id));

                        int rowsaffected = cmd.ExecuteNonQuery();
                        if (rowsaffected > 0)
                        {
                            return(RedirectToAction(nameof(Index)));
                        }
                        throw new Exception("no rows affected");
                    }
                }
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Create(ExerciseEditViewModel exercise)
        {
            try
            {
                using (SqlConnection conn = Connection)
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = @"INSERT INTO Exercise (Name, Language)
                                        OUTPUT INSERTED.Id
                                        VALUES (@name, @language)";

                        cmd.Parameters.Add(new SqlParameter("@name", exercise.Name));
                        cmd.Parameters.Add(new SqlParameter("@language", exercise.Language));

                        var id = (int)cmd.ExecuteScalar();
                        exercise.ExerciseId = id;

                        return(RedirectToAction(nameof(Index)));
                    }
                }
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
        public ActionResult Edit(int id, ExerciseEditViewModel exercise)
        {
            try
            {
                using (SqlConnection conn = Connection)
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = @"UPDATE Exercise 
                                           SET Name = @name,
                                               Language = @language
                                           
                                            WHERE Id = @id";

                        cmd.Parameters.Add(new SqlParameter("@name", exercise.Name));
                        cmd.Parameters.Add(new SqlParameter("@language", exercise.Language));
                        cmd.Parameters.Add(new SqlParameter("@id", id));

                        var rowsAffected = cmd.ExecuteNonQuery();
                        if (rowsAffected < 1)
                        {
                            return(NotFound());
                        }
                    }
                }


                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
Пример #4
0
        public ActionResult Edit(int id, ExerciseEditViewModel viewModel)
        {
            try
            {
                using (SqlConnection conn = Connection)
                {
                    conn.Open();
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = @"UPDATE Exercise
                                            SET exerciseName = @exerciseName,
                                                exerciseLanguage = @exerciseLanguage
                                            WHERE id = @id";
                        cmd.Parameters.Add(new SqlParameter("@exerciseName", viewModel.Exercise.ExerciseName));
                        cmd.Parameters.Add(new SqlParameter("@exerciseLanguage", viewModel.Exercise.ExerciseLanguage));
                        cmd.Parameters.Add(new SqlParameter("@id", id));

                        cmd.ExecuteNonQuery();
                        return(RedirectToAction(nameof(Index)));
                    }
                }
            }
            catch
            {
                return(View());
            }
        }
Пример #5
0
        public void ExerciseCompositeViewModel_Receives_Cancel_Message_From_ExerciseEditViewModel()
        {
            ViewModelLocator compositeRoot = new ViewModelLocator();
            var viewModelFactory           = compositeRoot.ViewModelFactory;

            var exerciseService = new Mock <IExerciseService>();
            var dialogService   = new Mock <IDialogViewService>();

            var exercise = new Exercise {
                Id = 2, Title = "Existing Exercise"
            };

            exerciseService.Setup(srv => srv.Get(It.IsAny <int>()))
            .Returns(exercise);

            var exerciseManagementViewModel = new ExerciseManagementViewModel(exerciseService.Object, dialogService.Object);

            var exerciseEditViewModel = new ExerciseEditViewModel(dialogService.Object);

            var viewModel = new MockExerciseCompositeViewModel(viewModelFactory, exerciseService.Object, exerciseManagementViewModel, exerciseEditViewModel);

            exerciseEditViewModel.StartEdit(exercise);
            exerciseEditViewModel.CancelCommand.Execute(null);

            Assert.IsTrue(viewModel.EndEditinExerciseCalled);
            Assert.That(viewModel.EndEditOperation, Is.EqualTo(EditorCloseOperation.Canceled));
        }
Пример #6
0
        public void ExerciseCompositeViewModel_Receives_Save_Message_From_ExerciseEditViewModel()
        {
            var exerciseService = new Mock <IExerciseService>();
            var dialogService   = new Mock <IDialogViewService>();

            var exercise = new Exercise {
                Id = 0, Title = "New Exercise"
            };

            exerciseService.Setup(srv => srv.Get(It.IsAny <int>()))
            .Returns(exercise);

            var exerciseManagementViewModel = new ExerciseManagementViewModel(exerciseService.Object, dialogService.Object);
            var exerciseEditViewModel       = new ExerciseEditViewModel(dialogService.Object);
            var viewModelFactory            = new Mock <IViewModelFactory>();

            var viewModel = new MockExerciseCompositeViewModel(viewModelFactory.Object, exerciseService.Object, exerciseManagementViewModel, exerciseEditViewModel);

            exerciseEditViewModel.StartEdit(exercise);
            exerciseEditViewModel.SaveCommand.Execute(null);

            Assert.IsTrue(viewModel.EndEditinExerciseCalled);

            Assert.That(viewModel.EndEditOperation, Is.EqualTo(EditorCloseOperation.Saved));
        }
Пример #7
0
        public void ExerciseCompositeViewModel_Calls_Add_On_Service_When_Exercise_Saved_AsNew()
        {
            var dialogService = new Mock <IDialogViewService>();

            var exerciseService = new Mock <IExerciseService>();
            var exercise        = new Exercise {
                Id = 0, Title = "New Exercise"
            };

            exerciseService.Setup(srv => srv.Get(It.IsAny <int>()))
            .Returns(exercise);

            var exerciseManagementViewModel = new ExerciseManagementViewModel(exerciseService.Object, dialogService.Object);
            var exerciseEditViewModel       = new ExerciseEditViewModel(dialogService.Object);
            var viewModelFactory            = new Mock <IViewModelFactory>();


            var viewModel = new ExerciseCompositeViewModel(viewModelFactory.Object, exerciseService.Object, exerciseManagementViewModel, exerciseEditViewModel);

            exerciseEditViewModel.StartEdit(exercise);
            exerciseEditViewModel.SaveCommand.Execute(null);

            exerciseService.Verify(svc => svc.Add(It.IsAny <Exercise>()),
                                   Times.Once, "IExerciseService.Add was not called.");
        }
Пример #8
0
        // GET: Exercises/Edit/5
        public ActionResult Edit(int id)
        {
            Exercise exercise = GetExerciseById(id);
            ExerciseEditViewModel viewModel = new ExerciseEditViewModel();

            viewModel.Exercise = exercise;
            return(View(viewModel));
        }
        // GET: ExercisesController/Create
        public ActionResult Create()
        {
            var viewModel = new ExerciseEditViewModel();

            {
            };

            return(View(viewModel));
        }
        // GET: Exercises/Edit/5
        public ActionResult Edit(int id)
        {
            var viewModel = new ExerciseEditViewModel()
            {
                exercise = GetExerciseById(id),
            };

            return(View(viewModel));
        }
        // GET: ExercisesController/Edit/5
        public ActionResult Edit(int id)
        {
            var exercise  = GetExerciseById(id);
            var viewModel = new ExerciseEditViewModel()
            {
                ExerciseId = exercise.Id,
                Name       = exercise.Name,
                Language   = exercise.Language,
            };


            return(View(viewModel));
        }
Пример #12
0
        // GET: Exercises/Edit/5
        public ActionResult Edit(int id)
        {
            Exercise exercise = GetExerciseById(id);

            if (exercise == null)
            {
                return(NotFound());
            }

            ExerciseEditViewModel viewModel = new ExerciseEditViewModel
            {
                Exercise = exercise
            };

            return(View(viewModel));
        }
        // GET: Exercise/Delete/5
        public ActionResult Delete(int id)
        {
            Exercise exercise = GetExerciseById(id);

            if (exercise == null)
            {
                return(NotFound());
            }

            ExerciseEditViewModel viewModel = new ExerciseEditViewModel
            {
                ExerciseName     = exercise.Name,
                ExerciseLanguage = exercise.Language
            };

            return(View(viewModel));
        }
        public ExerciseCompositeViewModel(
            IViewModelFactory viewModelFactory,
            IExerciseService exerciseService,
            ExerciseManagementViewModel exerciseManagementViewModel,
            ExerciseEditViewModel exerciseEditViewModel
            )
        {
            this.viewModelFactory        = viewModelFactory;
            this.exerciseService         = exerciseService;
            this.exerciseSearchViewModel = exerciseManagementViewModel;
            this.exerciseEditViewModel   = exerciseEditViewModel;

            Messenger.Default.Register <StartEditingExerciseMessage>(this, (m) => StartEditingExercise(m.Exercise));
            Messenger.Default.Register <EndEditingExerciseMessage>(this, (m) => EndEditingExercise(m.Exercise, m.Operation, m.LifeCycleState));

            Messenger.Default.Register <CancelledExerciseRecordingMessage>(this, (m) => RecordingCancelled());
            Messenger.Default.Register <SavedExerciseRecordingMessage>(this, (m) => RecordingSaved());
            Messenger.Default.Register <StartPracticingExerciseMessage>(this, (m) => StartPracticingExercise(m.ExerciseId));

            NavigationCommand = new RelayCommand <string>((str) => CurrentViewModel = exerciseSearchViewModel);
            CurrentViewModel  = exerciseSearchViewModel;
        }
Пример #15
0
 public MockExerciseCompositeViewModel(IViewModelFactory viewModelFactory, IExerciseService exerciseService, ExerciseManagementViewModel exerciseSearchViewModel,
                                       ExerciseEditViewModel exerciseEditViewModel) : base(viewModelFactory, exerciseService, exerciseSearchViewModel, exerciseEditViewModel)
 {
 }