public void Save(TaskDetail task)
        {
            TaskDetailValidator validator = new TaskDetailValidator();

            validator.ValidateAndThrow(task);
            _tasksDataManager.Save(task);
        }
        public async System.Threading.Tasks.Task <ActionResult> Edit(TaskDetail task)
        {
            TaskDetailValidator validator         = new TaskDetailValidator();
            ValidationResult    validationResults = validator.Validate(task);

            if (!validationResults.IsValid)
            {
                var getProjectsTask = _projectApiRequestHandler.GetProjectsHeaders(projectsType: ProjectType.Active);

                foreach (var error in validationResults.Errors)
                {
                    ModelState.AddModelError(nameof(TaskEditViewModel.Task) + '.' + error.PropertyName, error.ErrorMessage);
                }

                TaskEditViewModel viewModel = new TaskEditViewModel()
                {
                    Task = task,
                };
                viewModel.ActiveProjects = await getProjectsTask;

                return(View(viewModel));
            }

            await _taskApiRequestHandler.SaveTask(task);

            return(RedirectToAction("List"));
        }