コード例 #1
0
        public HttpResponseMessage Insert(LivroCadastroModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Livro l = new Livro();
                    l.Autor             = new Autor();
                    l.Assunto           = new Assunto();
                    l.Titulo            = model.Titulo;
                    l.Editora           = model.Editora;
                    l.Edicao            = model.Edicao;
                    l.AnoPublicacao     = model.AnoPublicacao;
                    l.Autor.Nome        = model.NomeAutor;
                    l.Assunto.Descricao = model.Descricao;

                    LivroRepository rep = new LivroRepository();
                    rep.Insert(l);

                    return(Request.CreateResponse(HttpStatusCode.OK, "Livro Cadastrado com Sucesso"));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e.Message));
            }
        }
コード例 #2
0
        public override void Given()
        {
            // Arrange

            model = new LivroCadastroModel
            {
                Autor          = "Autor Teste",
                DataPublicacao = DateTime.Now,
                ImagemCapaUrl  = "imageurl/imagename.png",
                ISBN           = 12345,
                Nome           = "Nome Livro Teste",
                Preco          = 10
            };

            loginModel = new UsuarioLoginModel
            {
                Login = "******",
                Senha = "12345"
            };

            usuarioAppService.Setup(x => x.FindByLoginAndSenha(It.IsAny <UsuarioLoginModel>()))
            .Returns(new Domain.Entities.Usuario
            {
                IdUsuario = 1,
                Nome      = "Usuario teste",
                Senha     = "senhacriptografada",
                Login     = "******"
            });

            livroDomainService.Setup(x => x.Insert(It.IsAny <Domain.Entities.Livro>())).Throws(new Exception("ISBN já está cadastrado."));
        }
コード例 #3
0
        public IActionResult Cadastro(LivroCadastroModel model)
        {
            if (ModelState.IsValid)
            {
                var token = HttpContext.Session.GetString("token");

                if (string.IsNullOrEmpty(token))
                {
                    ViewBag.Message = "Usuario não logado, ou token expirado. Por favor, faça o login novamente.";
                    return(View());
                }

                var jsonContent = JsonSerializer.Serialize(model);
                var postContent = new StringContent(jsonContent, Encoding.UTF8, "application/json");


                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);

                    var post    = client.PostAsync("https://localhost:44376/api/livro", postContent).GetAwaiter().GetResult();
                    var retorno = post.Content.ReadAsStringAsync().GetAwaiter().GetResult();

                    if (!string.IsNullOrEmpty(retorno))
                    {
                        ViewBag.Message = retorno;
                    }
                }
            }

            ModelState.Clear();

            return(View());
        }
コード例 #4
0
        public HttpResponseMessage Alterar(LivroCadastroModel model)
        {
            try
            {
                LivroRepositorio rep = new LivroRepositorio();


                Livro l = new Livro();
                l.ISBN            = model.ISBN;
                l.Autor           = model.Autor;
                l.Nome            = model.Nome;
                l.Preco           = model.Preco;
                l.Data_Publicacao = model.Data_Publicacao;
                l.Imagem_Capa     = model.Imagem_Capa;

                rep.Insert(l);

                return(Request.CreateResponse(HttpStatusCode.OK, $"Livro {l.Nome}, alterado com sucesso."));
                //}
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message));
            }
        }
コード例 #5
0
        public override void Given()
        {
            // Arrange

            model = new LivroCadastroModel
            {
                Autor          = "",
                DataPublicacao = DateTime.MinValue,
                ImagemCapaUrl  = "",
                ISBN           = 0,
                Nome           = "",
                Preco          = 0
            };

            loginModel = new UsuarioLoginModel
            {
                Login = "******",
                Senha = "a3eilm"
            };

            usuarioAppService.Setup(x => x.FindByLoginAndSenha(It.IsAny <UsuarioLoginModel>()))
            .Returns(new Domain.Entities.Usuario
            {
                IdUsuario = 1,
                Nome      = "Usuario teste",
                Senha     = "senhacriptografada",
                Login     = "******"
            });
        }
コード例 #6
0
        public HttpResponseMessage Cadastrar(LivroCadastroModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    LivroRepositorio rep = new LivroRepositorio();


                    Livro l = new Livro();
                    l.ISBN            = model.ISBN;
                    l.Autor           = model.Autor;
                    l.Nome            = model.Nome;
                    l.Preco           = model.Preco;
                    l.Data_Publicacao = model.Data_Publicacao;
                    l.Imagem_Capa     = model.Imagem_Capa;

                    rep.Insert(l);

                    return(Request.CreateResponse(HttpStatusCode.OK, $"Livro {l.Nome}, cadastrado com sucesso."));
                }
                catch (Exception e)
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message));
                }
            }
            else
            {
                List <string> lista = ListarErros();
                return(Request.CreateResponse(HttpStatusCode.BadRequest, lista));
            }
        }
コード例 #7
0
ファイル: LivroTest.cs プロジェクト: flsdrj/livraria
        [Fact] //método para execução de teste do XUnit
               //async -> método executado como uma Thread (assincrono)
        public async Task Livro_Post_ReturnsOk()
        {
            //preencher os campos da model
            var modelCadastro = new LivroCadastroModel()
            {
                Nome           = "Biografia de Francisco",
                Isbn           = 12345678,
                Autor          = "Francisco Luiz",
                Preco          = 120.00,
                DataPublicacao = new DateTime(1979, 04, 27),
                ImagemCapa     = "https://www.infoescola.com/wp-content/uploads/2017/04/cegonha-0470854409.jpg"
            };

            var requestCadastro = new StringContent(JsonConvert.SerializeObject(modelCadastro),
                                                    Encoding.UTF8, "application/json");
            var responseCadastro = await appContext.Client.PostAsync(endpoint, requestCadastro);

            var resultCadastro = string.Empty;

            using (HttpContent content = responseCadastro.Content)
            {
                Task <string> r = content.ReadAsStringAsync();
                resultCadastro += r.Result;
            }

            var resposta = JsonConvert.DeserializeObject <ResultModel>(resultCadastro);

            //verificação de teste
            responseCadastro.StatusCode.Should().Be(HttpStatusCode.OK);
            resposta.Mensagem.Should().Be("Livro cadastrado com sucesso.");
        }
コード例 #8
0
        public IActionResult Cadastro()
        {
            LivroCadastroModel model = new LivroCadastroModel()
            {
                ListaLivro = _livroServico.BuscarLivros()
            };

            return(View(model));
        }
コード例 #9
0
ファイル: LivroController.cs プロジェクト: flsdrj/livraria
        public IActionResult Post(LivroCadastroModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            try
            {
                var livro = new Livro();

                livro.Nome           = model.Nome;
                livro.Isbn           = model.Isbn;
                livro.Autor          = model.Autor;
                livro.DataPublicacao = model.DataPublicacao;
                livro.Preco          = model.Preco;
                livro.ImagemCapa     = model.ImagemCapa;

                var consulta         = livroRepository.Consultar();
                var isbnjacadastrado = false;

                foreach (var item in consulta)
                {
                    if (item.Isbn == model.Isbn)
                    {
                        isbnjacadastrado = true;
                    }
                }

                if (isbnjacadastrado)
                {
                    return(BadRequest("Livro não cadastrado, Isbn já existente."));
                }
                else
                {
                    livroRepository.Inserir(livro);

                    var result = new
                    {
                        mensagem = "Livro cadastrado com sucesso.",
                        livro
                    };

                    return(Ok(result));
                }
            }
            catch (Exception e)
            {
                return(StatusCode(500, "Erro: " + e.Message));
            }
        }
コード例 #10
0
 public IActionResult Cadastro(LivroCadastroModel model)
 {
     if (ModelState.IsValid)
     {
         _livroServico.InserirLivro(new Livro()
         {
             Ano     = model.Ano,
             Titulo  = model.Titulo,
             Autor   = model.Autor,
             Editora = model.Editora
         });
         ModelState.Clear();
     }
     return(Cadastro());
 }
コード例 #11
0
        public IActionResult Post([FromBody] LivroCadastroModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    appService.Insert(model);

                    return(Ok(LivroResource.LivroCadastradoSucesso));
                }
                catch (Exception ex)
                {
                    return(StatusCode(500, ex.Message));
                }
            }
            else
            {
                return(BadRequest());
            }
        }
コード例 #12
0
ファイル: LivroTest.cs プロジェクト: flsdrj/livraria
        public async Task Livro_Post_ReturnsBadRequest()
        {
            var model = new LivroCadastroModel()
            {
                Nome           = string.Empty,
                Isbn           = 0,
                Autor          = string.Empty,
                Preco          = 0,
                DataPublicacao = new DateTime(0001, 01, 01),
                ImagemCapa     = string.Empty
            };


            var request = new StringContent(JsonConvert.SerializeObject(model),
                                            Encoding.UTF8, "application/json");

            var response = await appContext.Client.PostAsync(endpoint, request);

            //critério de teste (Serviço da API retornar HTTP BADREQUEST (400))
            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
        }
コード例 #13
0
        public void Insert(LivroCadastroModel model)
        {
            var livro = mapper.Map <Livro>(model);

            domain.Insert(livro);
        }