public async Task Delete(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new AppException("Bad Request! Invalid question id");
            }

            var questionnaire = _questionnaireRepository.Get(x => x.ID == id);

            if (questionnaire != null)
            {
                var detail = _questionnaireRepository.GetQuestionnaireDetail(questionnaire.ID).Result;
                _questionnaireRepository.Remove(questionnaire);
                if (detail != null)
                {
                    await _questionnaireRepository.DeleteQuestionnaireDetail(detail);
                }
                await _unitOfWork.CommitAsync();
            }
        }