Exemplo n.º 1
0
        public async void BreedsGetBreedsTest()
        {
            await AddBreeds();

            var result = await breedsRepository.GetBreeds(breedsBase.BreedsId, true);

            Assert.NotNull(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Método captura a lista Breeds da API TheCatAPI e armazena na base de dados
        /// juntamente com as imagens encontradas para cada Breeds
        /// </summary>
        /// <returns></returns>
        public async Task CapureAllBreedsWithImages()
        {
            // Captura uma lista de Breeds a partir da API TheCatAPI
            var breedsList = await theCatAPI.GetBreeds();

            // Para cada Breeds encontrado, armazena na base de dados
            foreach (var breeds in breedsList)
            {
                // Verifica se Breeds já existe na base de dados, se não existir, armazena
                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);
                }
                // Econtra as imagens do registro Breeds atual, caso exista, armazena as imagens na base de dados
                var imagesList = await theCatAPI.GetImagesByBreeds(breeds.Id);

                if (imagesList != null && imagesList.Count > 0)
                {
                    foreach (var image in imagesList)
                    {
                        // Verifica se Image existe. Se não, cria o objeto
                        // A variável: imageExists, é para fazer o tratamento se Add ou Update
                        // pois chamando este métodos, a tabela associativa será gravada, caso
                        // a imagem não tenha existido anteriormente.
                        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);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> GetBreeds(string codigoOuNome)
        {
            try
            {
                stopWatch.Restart();
                stopWatch.Start();
                var result = await breedsRepository.GetBreeds(codigoOuNome, true);

                stopWatch.Stop();
                var msg = result != null ? $"Raça {result?.Name} encontrada" : $"Raça pesquisada por: {codigoOuNome} não encontrada";
                logger.LogInformation((int)LogLevel.Information, $"{msg};{stopWatch.ElapsedMilliseconds}");
                if (env.IsDevelopment())
                {
                    logger.LogDebug((int)LogLevel.Debug, $"{msg};{stopWatch.ElapsedMilliseconds}");
                }
                return(Ok(result));
            }
            catch (Exception ex)
            {
                logger.LogError((int)LogLevel.Error, $"Erro ao buscar raça por {codigoOuNome}: {ex.Message}");
                return(BadRequest());
            }
        }