public void Given_valid_request_When_mark_responsibility_task_for_delete_Then_should_return_correct_result()
        {
            //Given
            var target = GetTarget();
            var viewModel = new MarkResponsibilityTaskAsNoLongerRequiredViewModel()
                                {
                                    CompanyId = companyId,
                                    TaskId = taskId
                                };

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

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

            var viewModel = new MarkResponsibilityTaskAsNoLongerRequiredViewModel()
                                {
                                    CompanyId = companyId,
                                    TaskId = 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 = GetTarget();

            var viewModel = new MarkResponsibilityTaskAsNoLongerRequiredViewModel()
                                {
                                    CompanyId = companyId,
                                    TaskId = 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(MarkResponsibilityTaskAsNoLongerRequiredViewModel 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.TaskId,
                UserId = CurrentUser.UserId
            });
            return Json(new MarkTaskAsNoLongerRequiredResultViewModel()
            {
                Success = true
            });
        }