/// <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); }