/// <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 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); } } } } }
/// <summary> /// Construtor utilizado para instanciar as classes que serão testadas /// </summary> public RepositoriesTest() { appConfiguration = new AppConfiguration(); var contextDB = new TheCatDBContext(appConfiguration); breedsBase = new Breeds("abys", "Abyssinian"); breedsBase.SetOrigin("Egypt"); breedsBase.SetTemperament("Active, Energetic, Independent, Intelligent, Gentle"); breedsBase.SetDescription("The Abyssinian is easy to care for, and a joy to have in your home. They’re affectionate cats and love both people and other animals."); categoryBase = new Category(1, "hats"); imageUrlBase = new ImageUrl("393", "https://cdn2.thecatapi.com/images/393.jpg"); imageUrlBase.SetWidth(1024); imageUrlBase.SetHeight(654); imageUrlBase.SetBreeds(breedsBase); imageUrlBase.SetCategory(categoryBase); imageUrlRepository = new ImageUrlRepository(contextDB); breedsRepository = new BreedsRepository(contextDB, imageUrlRepository); categoryRepository = new CategoryRepository(contextDB); logEventRepository = new LogEventRepository(contextDB); }