public override async Task <LivroResponse> GetById(LivroFilter request, ServerCallContext context) { var livroResponse = new LivroResponse(); var result = await _servico.GetLivroAsync(Guid.Parse(request.LivroId)); if (result.Status is ResultStatus.NotFound) { livroResponse.Code = (int)context.Status.StatusCode; livroResponse.Errors.AddRange(result.Errors); livroResponse.Message = $"Nenhum livro com o id '{request.LivroId}' foi encontrado"; return(livroResponse); } livroResponse.Code = (int)result.Status; livroResponse.Errors.AddRange(result.Errors); livroResponse.Message = "Busca realizada com sucesso"; livroResponse.Data = new LivroModel { Id = result.Value.Id.ToString(), Titulo = result.Value.Titulo, Descricao = result.Value.Descricao, Valor = Convert.ToDouble(result.Value.Valor), Isbn10 = result.Value.ISBN_10, Edicao = result.Value.Edicao, Idioma = result.Value.Idioma, DataPublicacao = result.Value.DataPublicacao.ToShortDateString(), NumeroPaginas = result.Value.NumeroPaginas, EditoraId = result.Value.EditoraId.ToString(), AutorId = result.Value.AutorId.ToString() }; 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)); }
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)); }
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 override async Task <LivroResponse> Create(LivroCreateRequest request, ServerCallContext context) { var livroResponse = new LivroResponse(); var livroModel = new Application.Models.LivroModel { Titulo = request.Titulo, Descricao = request.Descricao, Valor = Convert.ToDecimal(request.Valor), ISBN_10 = request.Isbn10, Edicao = request.Edicao, Idioma = request.Idioma, DataPublicacao = DateTime.Parse(request.DataPublicacao), NumeroPaginas = request.NumeroPaginas, EditoraId = Guid.Parse(request.EditoraId), AutorId = Guid.Parse(request.AutorId) }; var result = await _servico.AddLivroAsync(livroModel); if (result.Status is ResultStatus.Invalid) { livroResponse.Code = (int)context.Status.StatusCode; livroResponse.Errors.AddRange(result.Errors); livroResponse.Message = $"Livro possui erros de validação"; livroResponse.Validations.AddRange(result.ValidationErrors .Select(x => new LivroValidationErrorsModel { Error = x.ErrorMessage, Property = x.Identifier, Nivel = x.Severity.ToString() })); return(livroResponse); } livroResponse.Code = (int)result.Status; livroResponse.Errors.AddRange(result.Errors); livroResponse.Message = "Livro criado com sucesso"; livroResponse.Data = new LivroModel { Id = result.Value.Id.ToString(), Titulo = result.Value.Titulo, Descricao = result.Value.Descricao, Valor = Convert.ToDouble(result.Value.Valor), Isbn10 = result.Value.ISBN_10, Edicao = result.Value.Edicao, Idioma = result.Value.Idioma, DataPublicacao = result.Value.DataPublicacao.ToShortDateString(), NumeroPaginas = result.Value.NumeroPaginas, EditoraId = result.Value.EditoraId.ToString(), AutorId = result.Value.AutorId.ToString() }; return(livroResponse); }
public async Task <ActionResult <Livro> > PostLivro(LivroResponse livroResponse) { var autorTake = await _context.Autores.FirstOrDefaultAsync(x => x.Id == livroResponse.Autor.Id); livroResponse.Autor = autorTake; Livro livro = new Livro { Titulo = livroResponse.Titulo, ISBN = livroResponse.ISBN, Ano = livroResponse.Ano, Autor = livroResponse.Autor }; _context.Livros.Add(livro); await _context.SaveChangesAsync(); return(CreatedAtAction("GetLivro", new { id = livro.Id }, livro)); }
public ActionResult Create(LivroResponse livro) { if (ModelState.IsValid) { var client = new RestClient(); var request = new RestRequest("https://localhost:5001/api/livros", DataFormat.Json); request.AddJsonBody(livro); var response = client.Post <Livro>(request); return(Redirect("/livro/index")); } return(BadRequest()); }
public IActionResult Get(string Tokien) { string NewTokien = this.ValidarAcesso(Tokien); if (NewTokien != String.Empty) { LivroResponse response = new LivroResponse() { Tokien = NewTokien, Livros = LivroServico.GetByLivroUsuario(this.UserLogado.Id) }; return(Ok(response)); } return(NotFound()); }
public override async Task <LivroResponse> Delete(LivroFilter request, ServerCallContext context) { var livroResponse = new LivroResponse(); var result = await _servico.DeleteLivroAsync(Guid.Parse(request.LivroId)); if (result.Status is ResultStatus.NotFound) { livroResponse.Code = (int)context.Status.StatusCode; livroResponse.Errors.AddRange(result.Errors); livroResponse.Message = $"Nenhum livro com o id '{request.LivroId}' foi encontrado"; return(livroResponse); } livroResponse.Code = (int)result.Status; livroResponse.Errors.AddRange(result.Errors); livroResponse.Message = "Livro deletado com sucesso"; return(livroResponse); }
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); }