Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }