/// <summary>
        ///  Returns data to bind on declaration form
        /// </summary>
        /// <returns></returns>
        public async Task <IResult> GetDeclarationFormData()
        {
            var formViewModel = new DeclarationViewModel
            {
                Locations = new List <OptionsViewModel>(),
                Questions = new List <OptionsViewModel>(),
                Symptoms  = new List <OptionsViewModel>(),
                Zones     = new List <OptionsViewModel>()
            };
            var result = new Result
            {
                Operation  = Operation.Read,
                Status     = Status.Success,
                StatusCode = HttpStatusCode.OK
            };

            try
            {
                var locations = await _locationRepository.GetLocations();

                if (locations.Any())
                {
                    formViewModel.Locations = locations.Select(t =>
                    {
                        var optionViewModel = new OptionsViewModel();
                        optionViewModel.MapFromModel(t);
                        return(optionViewModel);
                    }).ToList();
                }

                var zones = await _zoneRepository.GetZones();

                if (zones.Any())
                {
                    formViewModel.Zones = zones.Select(t =>
                    {
                        var optionViewModel = new OptionsViewModel();
                        optionViewModel.MapFromModel(t);
                        return(optionViewModel);
                    }).ToList();
                }

                var questions = await _questionRepository.GetQuestions();

                if (questions.Any())
                {
                    formViewModel.Questions = questions.Select(t =>
                    {
                        var optionViewModel = new OptionsViewModel();
                        optionViewModel.MapFromModel(t);
                        return(optionViewModel);
                    }).ToList();
                }


                var symptoms = await _symptomRepository.GetSymptoms();

                if (symptoms.Any())
                {
                    formViewModel.Symptoms = symptoms.Select(t =>
                    {
                        var optionViewModel = new OptionsViewModel();
                        optionViewModel.MapFromModel(t);
                        return(optionViewModel);
                    }).ToList();
                }
                result.Body = formViewModel;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                result.Status     = Status.Error;
                result.Message    = ex.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(result);
        }