public async Task <JogoResponse> Inserir(JogoRequest request) { var jogo = new Jogo(request.Nome, request.Genero, request.Situacao); _entityValidator.Validate(new Entity[] { jogo }); if (_notification.HasNotifications) { return(null); } await _context.Jogo.AddAsync(jogo); await _context.SaveChangesAsync(); return(_mapper.Map <JogoResponse>(jogo)); }
public async Task <EmprestimoResponse> Inserir(EmprestimoRequest request) { var amigo = await _context.Amigo.Include(x => x.Emprestimos).ThenInclude(y => y.Jogo) .FirstOrDefaultAsync(x => x.Id == request.AmigoId); if (amigo == null) { _notification.AddNotification("Amigo", "Amigo não foi encontrado"); return(null); } var jogo = await _context.Jogo.FirstOrDefaultAsync(x => x.Id == request.JogoId); if (jogo == null) { _notification.AddNotification("Jogo", "Jogo não foi encontrado"); return(null); } if (jogo.Situacao == SituacaoJogo.Indisponivel) { _notification.AddNotification("Jogo", "Já existe um emprestimo para esse jogo"); return(null); } var emprestimo = new Emprestimo(amigo, jogo); amigo.AddEmprestimo(emprestimo); _entityValidator.Validate(new Entity[] { emprestimo, amigo }); if (_notification.HasNotifications) { return(null); } await _context.SaveChangesAsync(); return(_mapper.Map <EmprestimoResponse>(emprestimo)); }
public async Task <AmigoResponse> Inserir(AmigoRequest request) { if (await _context.Amigo.AnyAsync(x => x.Apelido == request.Apelido)) { _notification.AddNotification("Amigo", "Amigo já cadastrado"); return(null); } var amigo = new Amigo(request.Apelido, request.Telefone); _entityValidator.Validate(new Entity[] { amigo }); if (_notification.HasNotifications) { return(null); } await _context.Amigo.AddAsync(amigo); await _context.SaveChangesAsync(); return(_mapper.Map <AmigoResponse>(amigo)); }
public async Task <UsuarioResponse> Inserir(UsuarioRequest request) { if (await _context.Usuario.AnyAsync(x => x.Email == request.Email)) { _notification.AddNotification("Usuário", "Já existe um usuário cadastrado com esse e-mail"); return(null); } var usuario = new Usuario(request.Nome, request.Senha, request.Email); _entityValidator.Validate(new Entity[] { usuario }); if (_notification.HasNotifications) { return(null); } await _context.Usuario.AddAsync(usuario); await _context.SaveChangesAsync(); return(_mapper.Map <UsuarioResponse>(usuario)); }