public void Given_valid_request_When_mark_further_actionTask_for_delete_Then_should_return_correct_result()
        {
            //Given
            var target = CreateController();
            var viewModel = new MarkTaskAsNoLongerRequiredViewModel()
                                                {
                                                    CompanyId = companyId,
                                                    FurtherControlMeasureTaskId = taskId
                                                };

            //When
            var result = target.MarkTaskAsNoLongerRequired(viewModel);

            //Then
            dynamic data = result.Data;
            Assert.That(data.Success, Is.EqualTo(true));
        }
        public void Given_invalid_request_When_mark_further_actionTask_as_no_longer_required_Then_should_throw_correct_exception()
        {
            //Given
            taskId = 0;
            companyId = 0;
            var target = CreateController();

            var viewModel = new MarkTaskAsNoLongerRequiredViewModel()
                                                {
                                                    CompanyId = companyId,
                                                    FurtherControlMeasureTaskId = taskId
                                                };

            target.ModelState.AddModelError("", "");

            //When
            //Then
            Assert.Throws<ArgumentException>(() => target.MarkTaskAsNoLongerRequired(viewModel));
        }
        public void Given_valid_request_When_mark_for_no_longer_required_Then_should_call_appropiate_methods()
        {
            //Given
            var target = CreateController();

            var viewModel = new MarkTaskAsNoLongerRequiredViewModel()
                                                {
                                                    CompanyId = companyId,
                                                    FurtherControlMeasureTaskId = taskId
                                                };

            //When
            target.MarkTaskAsNoLongerRequired(viewModel);

            //Then
            _taskService.Verify(x => x.MarkTaskAsNoLongerRequired(It.Is<MarkTaskAsNoLongerRequiredRequest>(y => y.TaskId == taskId &&
                                                                                                                                   y.CompanyId == companyId &&
                                                                                                                                   y.UserId == target.CurrentUser.UserId)));
        }
        public JsonResult MarkTaskAsNoLongerRequired(MarkTaskAsNoLongerRequiredViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                throw new ArgumentException("Invalid Arguments To Mark Task As No Longer Required");
            }

            _taskService.MarkTaskAsNoLongerRequired(new MarkTaskAsNoLongerRequiredRequest()
            {
                CompanyId = viewModel.CompanyId,
                TaskId = viewModel.FurtherControlMeasureTaskId,
                UserId = CurrentUser.UserId
            });
            return Json(new MarkTaskAsNoLongerRequiredResultViewModel()
            {
                Success = true
            });
        }