예제 #1
0
        public async Task <IActionResult> Domains()
        {
            if (_loadedDomains != null)
            {
                return(Ok(_loadedDomains));
            }

            var response = new BasePostResponse <ConstituentDomains>();
            ConstituentDomains record = new ConstituentDomains();
            var taskGetCities         = _domainRepository.Cities();
            var taskGetContactTypes   = _domainRepository.ContactTypes();
            var taskPostal            = _domainRepository.PostalCodes();
            var taskState             = _domainRepository.States();
            var taskGetSuffix         = _domainRepository.Suffixes();
            var taskGetTitles         = _domainRepository.Titles();
            var taskTownships         = _domainRepository.Townships();
            var taskEthnicities       = _domainRepository.Ethnicities();
            var taskGenders           = _domainRepository.Genders();
            var taskIncomeLevels      = _domainRepository.IncomeLevels();
            var taskLanguages         = _domainRepository.Languages();
            var taskMaritalStatuses   = _domainRepository.MaritalStatuses();
            var taskRaces             = _domainRepository.Races();
            var taskList = new List <Task>()
            {
                taskGetCities,
                taskGetContactTypes,
                taskPostal,
                taskState,
                taskGetTitles,
                taskGetSuffix,
                taskTownships,
                taskEthnicities,
                taskGenders,
                taskIncomeLevels,
                taskLanguages,
                taskMaritalStatuses,
                taskRaces
            };
            await Task.WhenAll(taskList.ToArray());

            record.Cities = taskGetCities.Result.Select(x => new SelectItem()
            {
                Id = x.CityId, ShortDescription = x.CityName
            }).ToList();
            record.Suffixes = taskGetSuffix.Result.Select(x => new SelectItem()
            {
                Id = x.SuffixId, ShortDescription = x.SuffixText
            }).ToList();
            record.Titles = taskGetTitles.Result.Select(x => new SelectItem()
            {
                Id = x.TitleId, ShortDescription = x.TitleText
            }).ToList();
            record.ContactTypes = taskGetContactTypes.Result;
            record.PostalCodes  = taskPostal.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.Code
            }).ToList();
            record.States = taskState.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.StateCd
            }).ToList();
            record.Townships = taskTownships.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.TownshipName
            }).ToList();
            record.Ethnicities = taskEthnicities.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.Description
            }).ToList();
            record.Genders = taskGenders.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.Description
            }).ToList();
            record.IncomeLevels = taskIncomeLevels.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.Description
            }).ToList();
            record.Languages = taskLanguages.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.CodeText
            }).ToList();
            record.MaritalStatuses = taskMaritalStatuses.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.MaritalType
            }).ToList();
            record.Races = taskRaces.Result.Select(x => new SelectItem()
            {
                Id = x.Id, ShortDescription = x.Type
            }).ToList();

            _loadedDomains = record;
            response.Data  = record;

            return(Ok(response));
        }