Fiz o mesmo que o professor fez nas aulas, porém o restaurante não está aparecendo no ItemService.
O meu projeto está no meu repositório do GitHub. Se alguém puder me ajudar, eu agradeço muito!
Fiz o mesmo que o professor fez nas aulas, porém o restaurante não está aparecendo no ItemService.
O meu projeto está no meu repositório do GitHub. Se alguém puder me ajudar, eu agradeço muito!
Olá, André! Tudo bem?
Pelo que pude analisar, parece que você seguiu todos os passos corretamente, mas o restaurante não está sendo exibido no ItemService
. Vamos tentar resolver isso juntos!
Primeiramente, certifique-se de que o RabbitMqSubscriber
está sendo inicializado corretamente no Program.cs
do ItemService
. O código deve parecer com isso:
builder Service.AddHostedService<RabbitMqSubscriber>();
builder Service.AddSingleton<IProcessaEvento, ProcessaEvento>();
Além disso, verifique se o RabbitMqSubscriber
está configurado corretamente para conectar ao RabbitMQ. O código deve ser semelhante a este:
_connection = new ConnectionFactory() { HostName = _configuration ["RabbitMqHost"], Port = Int32.Parse(_configuration["RabbitMqHost"]) }.CreateConnection();
Outro ponto importante é verificar se o mapeamento do RestauranteReadDto
para Restaurante
está sendo feito corretamente no ItemProfile
. O código deve ser algo como:
CreateMap<RestauranteReadDto, Restaurante>()
.ForMember(dest => dest.IdExterno, opt => opt.MapFrom(src => src.Id));
Por fim, verifique se a porta do RabbitMQ está configurada corretamente no appsettings.json
de ambos os serviços. A porta deve ser 5672, como mencionado na aula.
Se tudo estiver configurado corretamente e o problema persistir, sugiro que você verifique os logs do ItemService
e do RestauranteService
para ver se há alguma mensagem de erro que possa nos dar uma pista do que está acontecendo.
Espero ter ajudado e bons estudos!
Olhando o seu projeto no GitHub, vi que no arquivo ProcessaEvento.cs, dentro do método Processa está com um errinho, e por conta disto não está aparecendo o restaurante no ItemService.
Aonde está:
if (itemRepository.ExisteRestauranteExterno(restaurante.Id)) {
itemRepository.CreateRestaurante(restaurante);
itemRepository.SaveChanges();
}
Deveria ser:
if (!itemRepository.ExisteRestauranteExterno(restaurante.Id)) {
itemRepository.CreateRestaurante(restaurante);
itemRepository.SaveChanges();
}
Com isso deve funcionar corretamente!