public async Task <int> AddCandidate(CandidateDetailsWithSkills details)
        {
            var timeNow = DateTime.Now;

            var candidateObject = new Candidate()
            {
                FirstName   = details.FirstName,
                Surname     = details.LastName,
                DateOfBirth = details.DateOfBirth,
                Address1    = details.Address1,
                Town        = details.Town,
                Country     = details.Country,
                PostCode    = details.PostCode,
                PhoneHome   = details.PhoneHome,
                PhoneMobile = details.PhoneMobile,
                PhoneWork   = details.PhoneWork,
                CreatedDate = timeNow,
                UpdatedDate = timeNow
            };


            var candidateId = await _candidateRepository.Add(candidateObject);

            if (details.SkillIds != null)
            {
                int numSkills = details.SkillIds.Count;
                if (numSkills > 0)
                {
                    // If number of records created doesn't match size of input list consider rolling back entire transaction
                    var numRecords = await _candidateRepository.AddSkills(candidateId, details.SkillIds);
                }
            }

            return(candidateId);
        }