Esempio n. 1
0
 public async Task <List <OwnerGenderPets> > GetPetNamesByOwnerGenderAndPetType(string petType)
 {
     try
     {
         return(await _ownerPetService.GetOwnerPetsByPetTypeAsync(petType));
     }
     catch (Exception ex)
     {
         AglLogger.AddErrorLog(ex, "", null);
         throw ex;
     }
 }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        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;
            }
        }
Esempio n. 6
0
        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;
            }
        }