public void RemoveLivroCarrinho(UsuarioEntity usuario, LivroEntity livro)
        {
            CarrinhoEntity carrinho = _carrinhoRepository.GetByUser(usuario.Id);

            if (carrinho != null)
            {
                if (carrinho.Livros.Any(i => i.Id == livro.Id))
                {
                    carrinho.RemoverLivro(livro.Id);
                }

                if (carrinho.Livros.Count > 0)
                {
                    _carrinhoRepository.Update(carrinho);
                }
                else
                {
                    _carrinhoRepository.Delete(carrinho);
                }
            }
            else
            {
                throw new System.Exception("Usuário não tem carrinho!");
            }
        }
예제 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Nome,Isbn,Lancamento,Paginas")] LivroEntity livroEntity)
        {
            if (id != livroEntity.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _livroService.UpdateAsync(livroEntity);
                }
                catch (EntityValidationException e)
                {
                    ModelState.AddModelError(e.PropertyName, e.Message);
                    return(View(livroEntity));
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (await _livroService.GetByIdAsync(id) == null)
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(livroEntity));
        }
예제 #3
0
        [HttpPut] //update
        public async Task <ActionResult> Put([FromBody] LivroEntity livro)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); //400 bad request - solicitação inválida
            }

            try
            {
                var result = await _livroService.Put(livro);

                if (result != null)
                {
                    return(Ok(result));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (ArgumentException ex)                                                 // trata erro de controller
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); // erro 50
            }
        }
예제 #4
0
        public async Task RemoveAsync(LivroEntity livroEntity)
        {
            var livroToRemove = await GetByIdAsync(livroEntity.Id);

            _bibliotecaContext.Livros.Remove(livroToRemove);

            await _bibliotecaContext.SaveChangesAsync();
        }
예제 #5
0
        public async Task <int> AddAsync(LivroEntity livroEntity)
        {
            var entityEntry = await _bibliotecaContext.Livros.AddAsync(livroEntity);

            await _bibliotecaContext.SaveChangesAsync();

            return(entityEntry.Entity.Id);
        }
예제 #6
0
        public async Task InsertAsync(LivroEntity insertedEntity)
        {
            var isbnExists = await _livroRepository.CheckIsbnAsync(insertedEntity.Isbn);

            if (isbnExists)
            {
                throw new EntityValidationException(nameof(LivroEntity.Isbn), $"ISBN {insertedEntity.Isbn} já existe!");
            }

            await _livroRepository.InsertAsync(insertedEntity);
        }
예제 #7
0
        public async Task UpdateAsync(LivroEntity updatedEntity)
        {
            var isbnExists = await _livroRepository.CheckIsbnAsync(updatedEntity.Isbn, updatedEntity.Id);

            if (isbnExists)
            {
                throw new EntityValidationException(nameof(LivroEntity.Isbn), $"ISBN {updatedEntity.Isbn} já existe em outro livro!");
            }

            await _livroRepository.UpdateAsync(updatedEntity);
        }
        public void Adicionar(UsuarioEntity usuario, LivroEntity livro)
        {
            CarrinhoEntity carrinho = _carrinhoRepository.GetByUser(usuario.Id);

            if (carrinho == null)
            {
                carrinho = new CarrinhoEntity(usuario, livro);
                _carrinhoRepository.Add(carrinho);
            }
            else
            {
                carrinho.AdicionarLivro(livro);
                _carrinhoRepository.Update(carrinho);
            }
        }
예제 #9
0
        public async Task <IActionResult> Create([Bind("Id,Nome,Isbn,Lancamento,Paginas")] LivroEntity livroEntity)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    await _livroService.InsertAsync(livroEntity);

                    return(RedirectToAction(nameof(Index)));
                }
                catch (EntityValidationException e)
                {
                    ModelState.AddModelError(e.PropertyName, e.Message);
                }
            }
            return(View(livroEntity));
        }
예제 #10
0
        public async Task <ActionResult <LivroEntity> > PostLivroEntity(LivroEntity livroEntity)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                await _livroService.InsertAsync(livroEntity);

                return(CreatedAtAction(
                           "GetLivroEntity",
                           new { id = livroEntity.Id }, livroEntity));
            }
            catch (EntityValidationException e)
            {
                ModelState.AddModelError(e.PropertyName, e.Message);
                return(BadRequest(ModelState));
            }
        }
예제 #11
0
        public async Task <IActionResult> PutLivroEntity(int id, LivroEntity livroEntity)
        {
            if (id != livroEntity.Id)
            {
                return(BadRequest());
            }

            try
            {
                await _livroService.UpdateAsync(livroEntity);
            }
            catch (EntityValidationException e)
            {
                ModelState.AddModelError(e.PropertyName, e.Message);
                return(BadRequest(ModelState));
            }
            catch (RepositoryException e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(BadRequest(ModelState));
            }

            return(NoContent());
        }
예제 #12
0
 public async Task EditAsync(LivroEntity livroEntity)
 {
     await _livroRepository.EditAsync(livroEntity);
 }
예제 #13
0
        public async Task EditAsync(LivroEntity livroEntity)
        {
            _bibliotecaContext.Livros.Update(livroEntity);

            await _bibliotecaContext.SaveChangesAsync();
        }
예제 #14
0
 public async Task RemoveAsync(LivroEntity livroEntity)
 {
     await _livroRepository.RemoveAsync(livroEntity);
 }
        public void Cadastrar(string nome, string isbn, decimal preco, List <string> autores)
        {
            LivroEntity livro = new LivroEntity(nome, isbn, preco, autores);

            _livroRepository.Add(livro);
        }
예제 #16
0
 public async Task <int> AddAsync(LivroEntity livroEntity)
 {
     return(await _livroRepository.AddAsync(livroEntity));
 }
예제 #17
0
 public async Task <LivroEntity> Post(LivroEntity livroEntity)
 {
     //colocar verificações
     return(await _repository.InsertAsync(livroEntity));
 }
예제 #18
0
 public async Task <LivroEntity> Put(LivroEntity livroEntity)
 {
     return(await _repository.UpdateAsync(livroEntity));
 }