public async Task <IActionResult> CreateAsync([FromBody] ApplicantInputModel model)
        {
            _logger.LogInformation("POST applicants");
            SetRepoEndpoint();

            var validation = await new ApplicantValidator(_countryService).ValidateAsync(model);

            if (!validation.IsValid)
            {
                _logger.LogWarning("BadRequest");
                return(BadRequest(validation));
            }

            var applicant = new Applicant(model);

            _repo.Add(applicant);
            await _repo.SaveUnitOfWorkAsync(HttpContext.RequestAborted);

            var result   = applicant.GetViewModel(_repo.BaseEndpointUrl);
            var location = result.Links.First(l => l.Action == "GET");

            return(Created(location.Href, result));
        }