Esempio n. 1
0
        public async Task CapureAllBreedsWithImages()
        {
            var breedsList = await theCatAPI.GetBreeds();

            foreach (var breeds in breedsList)
            {
                var breedsInDB = await breedsRepository.GetBreeds(breeds.Id);

                if (breedsInDB == null)
                {
                    breedsInDB = new Breeds(breeds.Id, breeds.Name);
                    breedsInDB.SetOrigin(breeds.Origin);
                    breedsInDB.SetTemperament(breeds.Temperament);
                    breedsInDB.SetDescription(breeds.Description);
                    await breedsRepository.AddBreeds(breedsInDB);
                }
                var imagesList = await theCatAPI.GetImagesByBreeds(breeds.Id);

                if (imagesList != null && imagesList.Count > 0)
                {
                    foreach (var image in imagesList)
                    {
                        var imageInDB = await imageUrlRepository.GetImageUrl(image.Id);

                        var imageExists = imageInDB != null;
                        if (!imageExists)
                        {
                            imageInDB = new ImageUrl(image.Id, image.Url);
                            imageInDB.SetWidth(image.Width);
                            imageInDB.SetHeight(image.Height);
                        }
                        imageInDB.SetBreeds(breedsInDB);
                        if (!imageExists)
                        {
                            await imageUrlRepository.AddImageUrl(imageInDB);
                        }
                        else
                        {
                            await imageUrlRepository.UpdateImageUrl(imageInDB);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> GetBreeds(string IdOrName)
        {
            try
            {
                stopWatch.Restart();
                stopWatch.Start();
                var result = await breedsRepository.GetBreeds(IdOrName, true);

                stopWatch.Stop();
                var msg = result != null ? $"Breed {result?.Name} found" : $"Breed search for: {IdOrName} not found";
                logger.LogInformation((int)LogLevel.Information, $"{msg};{stopWatch.ElapsedMilliseconds}");
                return(Ok(result));
            }
            catch (Exception ex)
            {
                logger.LogError((int)LogLevel.Error, $"Fail to get breed {IdOrName}: {ex.Message}");
                return(BadRequest());
            }
        }