public async Task <List <OwnerGenderPets> > GetPetNamesByOwnerGenderAndPetType(string petType) { try { return(await _ownerPetService.GetOwnerPetsByPetTypeAsync(petType)); } catch (Exception ex) { AglLogger.AddErrorLog(ex, "", null); throw ex; } }
public async Task <List <OwnerGenderPets> > GetOwnerPetsByPetTypeAsync(string petType) { try { var petTypeData = await _ownerRepository.GetPetOwnerByPetTypeAsync(petType).ConfigureAwait(false); return(_modelTranslator.Translate(petTypeData)); } catch (Exception ex) { AglLogger.AddErrorLog(ex, "petType:" + petType, null); throw ex; } }
public List <OwnerGenderPets> Translate(List <PetsOwner> inputModel) { try { List <OwnerGenderPets> outputModel = new List <OwnerGenderPets>(); TranslateByGenderType(inputModel, outputModel); return(outputModel); } catch (Exception ex) { AglLogger.AddErrorLog(ex, "", null); throw ex; } }
private async Task <List <PetsOwner> > GetPetOwnerUsingPetTypeAsync(string petType) { List <PetsOwner> petOwnersList = null; try { using (HttpClient webClient = new HttpClient()) { webClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); Uri dataUrl = new Uri(ConfigurationManager.AppSettings["url"]); HttpResponseMessage response = await webClient.GetAsync(dataUrl, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false); if (response.IsSuccessStatusCode) { var jsonString = await response.Content.ReadAsStringAsync().ConfigureAwait(false); petOwnersList = JsonConvert.DeserializeObject <List <PetsOwner> >(jsonString); petOwnersList.RemoveAll(po => po.pets == null); foreach (var owner in petOwnersList) { owner.pets?.RemoveAll(pd => pd.type.ToUpper() != petType.ToUpper()); } } else { AglLogger.AddWarningLog(null, "url failed:" + ConfigurationManager.AppSettings["url"], null); } } return(petOwnersList); } catch (Exception ex) { AglLogger.AddErrorLog(ex, "petType:" + petType, null); throw ex; } }
public async Task <List <PetsOwner> > GetPetOwnerByPetTypeAsync(string petType) { try { var petOwnersList = new List <PetsOwner>(); if (!IsMockData()) { petOwnersList = await GetPetOwnerUsingPetTypeAsync(petType).ConfigureAwait(false); } else { // implement getting mock data here. } return(petOwnersList); } catch (Exception ex) { AglLogger.AddErrorLog(ex, "petType:" + petType, null); throw ex; } }
private void TranslateByGenderType(List <PetsOwner> inputModel, List <OwnerGenderPets> outputModel) { try { var maleList = new OwnerGenderPets(); var femaleList = new OwnerGenderPets(); maleList.OwnerGender = Constants.Gender.Male; femaleList.OwnerGender = Constants.Gender.Female; inputModel.RemoveAll( po => po.gender.ToUpper() != Constants.Gender.Male.ToUpper() && po.gender.ToUpper() != Constants.Gender.Female.ToUpper()); foreach (var item in inputModel) { item.pets.RemoveAll(p => string.IsNullOrEmpty(p.name)); if (item.gender.ToUpper() == Constants.Gender.Male.ToUpper()) { maleList.PetNames.AddRange(item.pets.Select(x => x.name).ToList()); } else if (item.gender.ToUpper() == Constants.Gender.Female.ToUpper()) { femaleList.PetNames.AddRange(item.pets.Select(x => x.name).ToList()); } } outputModel.Add(maleList); outputModel.Add(femaleList); } catch (Exception ex) { AglLogger.AddErrorLog(ex, "", null); throw ex; } }