Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, Adriano.
Tudo bem?
Pelas imagens que você compartilhou, parece que as datas de nascimento estão sendo salvas com o valor mínimo padrão do tipo DateTime, que é 0001-01-01 00:00:00.000000. Isso geralmente ocorre quando a data não é fornecida ou é fornecida de forma inválida, fazendo com que o DateTime seja inicializado com seu valor padrão.
Considerando o contexto da sua atividade, aqui estão algumas verificações e passos que você pode seguir para resolver esse problema:
Verifique o Mapeamento DTO para Entidade: Certifique-se de que o mapeamento do CreateUsuarioDto para a entidade Usuario está sendo feito corretamente, especialmente para o campo DataNascimento. Se estiver usando o AutoMapper, verifique as configurações de mapeamento.
Verifique os Dados Recebidos no Controller: Confirme se o campo DataNascimento está sendo recebido corretamente no método CadastraUsuario do seu controller. Você pode fazer isso inspecionando o valor de dto.DataNascimento antes de mapeá-lo para a entidade Usuario.
Análise de Model Binding: O ASP.NET Core utiliza o model binding para converter os dados de entrada em tipos .NET. Se o formato da data de nascimento não estiver compatível com o esperado pelo model binder, ele pode não ser capaz de converter corretamente e atribuir o valor padrão. Verifique se o formato da data de nascimento enviada na requisição está em conformidade com o esperado pela API.
Validação de Modelo: Certifique-se de que a validação do modelo não está falhando para o campo DataNascimento. Se houver alguma regra de validação que não esteja sendo atendida, o valor pode não ser definido corretamente.
Debugging: Utilize a depuração para acompanhar o fluxo de dados desde o recebimento do DTO até a chamada do método CreateAsync do UserManager. Isso ajudará a identificar em que ponto o valor da data de nascimento está sendo perdido ou alterado.
Verificação do Banco de Dados: Assegure-se de que o campo DataNascimento na tabela do banco de dados esteja configurado para aceitar datas. Se o campo estiver definido como NOT NULL sem um valor padrão apropriado, e se um valor válido não for fornecido, o banco de dados pode estar preenchendo-o com o valor mínimo.
Se após essas verificações o problema persistir, você pode compartilhar um trecho do código onde o CreateUsuarioDto é recebido e mapeado para a entidade Usuario, assim como o trecho onde o usuário é salvo no banco de dados. Com essas informações, poderei fornecer uma orientação mais precisa.
Espero ter ajudado e bons estudos!
Olá, Renan.
Realizei o passo a passo e consegui resolver o problema. Obrigado.