public async void BreedsGetBreedsTest() { await AddBreeds(); var result = await breedsRepository.GetBreeds(breedsBase.BreedsId, true); Assert.NotNull(result); }
/// <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); } } } } }
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()); } }