public Livros(LivroRequest request) { this.Titulo = request.Titulo; this.Editora = request.Editora; this.AnoPublicacao = request.AnoPublicacao; this.Autor = request.Autor; }
public IActionResult Put(int id, [FromBody] LivroRequest request) { LivroResponse livroResponse = null; try { if (id == 0) { return(NotFound(new LivroResponse(false, "Não foi possível localizar o id informado para alteração"))); } if (id != request.Id) { return(BadRequest(new LivroResponse(false, "O Id informado não condiz com o Id informado na request"))); } livroResponse = _livroService.Update(request); } catch (LivroException ex) { return(BadRequest(new LivroResponse(false, ex.Message))); } catch (Exception) { return(BadRequest(new LivroResponse(false, "Internal Server error"))); } livroResponse.Status = true; livroResponse.Message = "Edição realizada com sucesso"; return(Ok(livroResponse)); }
/// <summary> /// Adiciona um novo Livro /// </summary> /// <param name="request"></param> /// <returns></returns> public LivroResponse Add(LivroRequest request) { List <Exemplares> exemplares = new List <Exemplares>(); if (TitleAlreadyExists(request.Titulo)) { throw new LivroException("Não é possível cadastrar o livro desejado pois já existe um com o mesmo Título"); } Entity.Livros dbLivro = new Entity.Livros(request); _livroRepository.Add(dbLivro); // cadastra exemplares for (int i = 0; i < request.QtdeExemplares; i++) { Exemplares dbExemplares = new Exemplares() { Livro = dbLivro }; exemplares.Add(dbExemplares); } _exemplarRepository.AddRange(exemplares); _livroRepository.SaveChanges(); _exemplarRepository.SaveChanges(); return(new LivroResponse(dbLivro, exemplares)); }
public LivroResponse PutBook(LivroRequest request) { LivroResponse livroResponse = null; if (FieldsAreNotValid(request)) { return(new LivroResponse(false, "Informações incorretas. Verifique os campos e tente novamente")); } string url = string.Format(string.Concat(_configuration["ApiBase:Base"], "api/Livro/{0}"), request.Id); _client.DefaultRequestHeaders.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpRequestMessage httpRequest = new HttpRequestMessage { Method = HttpMethod.Put, RequestUri = new Uri(url), Content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json") }; HttpResponseMessage response = _client.SendAsync(httpRequest).Result; string json = response.Content.ReadAsStringAsync().Result; livroResponse = JsonConvert.DeserializeObject <LivroResponse>(json); return(livroResponse); }
public IActionResult Post([FromBody] LivroRequest request) { LivroResponse livroResponse = null; try { if (request == null) { return(BadRequest(new LivroResponse(false, "A request não foi encontrada"))); } livroResponse = _livroService.Add(request); if (livroResponse == null) { return(BadRequest(new LivroResponse(false, "Não foi possível cadastrar o livro informado"))); } } catch (LivroException ex) { return(BadRequest(new LivroResponse(false, ex.Message))); } catch (Exception) { return(BadRequest(new LivroResponse(false, "Internal Server error"))); } livroResponse.Status = true; livroResponse.Message = "Cadastro realizado com sucesso"; return(Ok(livroResponse)); }
/// <summary> /// Exclui um livro /// </summary> /// <param name="request"></param> public void Delete(LivroRequest request) { _exemplarRepository.RemoveRange(_exemplarRepository.GetExemplarByBookId(request.Id)); _livroRepository.Remove(request.Id); _exemplarRepository.SaveChanges(); _livroRepository.SaveChanges(); }
/// <summary> /// Altera um livro já existente /// </summary> /// <param name="request"></param> /// <returns></returns> public LivroResponse Update(LivroRequest request) { Entity.Livros dbLivros = _livroRepository.GetById(request.Id); if (dbLivros == null) { throw new LivroException("O Livro informado para edição não existe"); } if (request.Titulo != request.CurrentTitle) { if (TitleAlreadyExists(request.Titulo)) { throw new LivroException("Não é possível alterar o livro desejado pois já existe um com o mesmo Título"); } } dbLivros.Titulo = request.Titulo; dbLivros.Editora = request.Editora; dbLivros.AnoPublicacao = request.AnoPublicacao; dbLivros.Autor = request.Autor; int currentQtyExemplares = _exemplarRepository.GetExemplarByBookId(request.Id).Count(); int countDifference = 0; if (currentQtyExemplares < request.QtdeExemplares) { List <Exemplares> exemplares = new List <Exemplares>(); countDifference = (request.QtdeExemplares - currentQtyExemplares); for (int i = 0; i < countDifference; i++) { Exemplares dbExemplar = new Exemplares() { LivroId = request.Id }; exemplares.Add(dbExemplar); } _exemplarRepository.AddRange(exemplares); } else { countDifference = (currentQtyExemplares - request.QtdeExemplares); List <Exemplares> exemplares = _exemplarRepository.GetExemplarByBookId(request.Id) .OrderByDescending(__exemplar => __exemplar.Codigo) .Take(countDifference) .ToList(); _exemplarRepository.RemoveRange(exemplares); } _livroRepository.Update(dbLivros); _livroRepository.SaveChanges(); _exemplarRepository.SaveChanges(); return(new LivroResponse(dbLivros)); }
private bool FieldsAreNotValid(LivroRequest request) { if (string.IsNullOrWhiteSpace(request.Titulo) || string.IsNullOrWhiteSpace(request.Editora) || request.AnoPublicacao <= 0 || string.IsNullOrWhiteSpace(request.Autor) || request.QtdeExemplares <= 0) { return(true); } return(false); }
public ActionResult Update(string id, [FromBody] LivroRequest request) { if (string.IsNullOrEmpty(id)) { return(NotFound()); } _livroService.UpdateLivro(id, request); return(Ok()); }
public HttpResponseMessage Edit(LivroRequest request) { try { _livroAplicacao.Persistir(request); return(Request.CreateResponse(HttpStatusCode.OK, ModelState)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex)); } }
public IActionResult Editar([FromBody] LivroRequest request) { string NewTokien = this.ValidarAcesso(request.Tokien); if (NewTokien != null) { Livro Livro = _Mapeamento.MapLivro(request); Livro LivroAtualizado = LivroServico.Edit(Livro); return(Ok(this.Commit(LivroAtualizado, NewTokien, LivroServico))); } return(NotFound()); }
public Livro MapLivro(LivroRequest request) { Livro resp = new Livro(); try { resp = _Mapper.Map <Livro>(request); resp.NumPaginas = Convert.ToInt32(request.NumPaginas); } catch (Exception e) { throw new Exception(e.Message); } return(resp); }
public Dominio.Entidades.Livro Criar(LivroRequest request) { if (request == null) { return(null); } return(new Dominio.Entidades.Livro { Id = request.Id, Descricao = request.Descricao, Isbn = request.Isbn, Titulo = request.Titulo }); }
public IActionResult Adicionar([FromBody] LivroRequest request) { string NewTokien = this.ValidarAcesso(request.Tokien); if (NewTokien != null) { Livro livro = _Mapeamento.MapLivro(request); LivroServico.Add(livro.Valid()); LivroServico.Vincular(livro.Id, this.UserLogado.Id); return(Ok(this.Commit(request, NewTokien, livro))); } return(NotFound()); }
public int Persistir(LivroRequest request) { var entidade = _livroFactory.Criar(request); _validator.Validar(entidade); if (entidade.Id == 0) { _repositorio.Adicionar(entidade); } else { _repositorio.Atualizar(entidade); } return(entidade.Id); }
public ActionResult Create([FromBody] LivroRequest request) { if (request == null) { return(null); } var livro = new Livro() { Titulo = request.Titulo, Isbn = request.Isbn, Ano = request.Ano, AutorId = request.AutorId, }; var response = _livroService.AddLivro(livro); return(Ok(response)); }
public IActionResult Delete(int id, [FromBody] LivroRequest request) { try { if (id == 0) { return(NotFound(new BaseResponse(false, "Não foi possível localizar o id informado para alteração"))); } if (id != request.Id) { return(BadRequest(new BaseResponse(false, "O Id informado não condiz com o Id informado na request"))); } _livroService.Delete(request); } catch (Exception) { return(BadRequest(new BaseResponse(false, "Internal Server error"))); } return(Ok(new BaseResponse(true, "Livro excluído com sucesso"))); }
public LivroResponse PostBook(LivroRequest request) { LivroResponse livroResponse = null; if (FieldsAreNotValid(request)) { return(new LivroResponse(false, "Informações incorretas. Verifique os campos e tente novamente")); } string url = string.Concat(_configuration["ApiBase:Base"], "api/Livro"); _client.BaseAddress = new Uri(url); _client.DefaultRequestHeaders.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = _client.PostAsJsonAsync(_client.BaseAddress, request).Result; string json = response.Content.ReadAsStringAsync().Result; livroResponse = JsonConvert.DeserializeObject <LivroResponse>(json); return(livroResponse); }
public BaseResponse DeleteBook(LivroRequest request) { BaseResponse baseResponse = null; string url = string.Format(string.Concat(_configuration["ApiBase:Base"], "api/Livro/{0}"), request.Id); _client.DefaultRequestHeaders.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpRequestMessage httpRequest = new HttpRequestMessage { Method = HttpMethod.Delete, RequestUri = new Uri(url), Content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json") }; HttpResponseMessage response = _client.SendAsync(httpRequest).Result; string json = response.Content.ReadAsStringAsync().Result; baseResponse = JsonConvert.DeserializeObject <BaseResponse>(json); return(baseResponse); }
public Livro MapLivro(LivroRequest request) { return(_Mapper.Map <Livro>(request)); }