public async Task<HttpResponseMessage> PostLivroCadastro(LivroModel livro)
        {
            
            try
            {
                if (!ModelState.IsValid)
                {
                    var mensagemError = new MensagemResposta("error", "Dados Incompletos. Porfavor preencha os campos requeridos.");
                    throw new DadosIvalidoException(mensagemError);
                }
                    
                
                var serviceCadastroDeLivros = new CadastrarLivrosService();
                await serviceCadastroDeLivros.Cadastrar(livro);
            } 
            catch(DadosIvalidoException e)
            {

                var resp = Request.CreateResponse(HttpStatusCode.BadRequest, e.ExceptionMessage);

                throw new HttpResponseException(resp);
            }
                
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, livro);
            return response;
                       
        }
        private bool VerificarISBN(LivroModel livroModel)
        {
            ValidadorDeISBN validadorISBN = new ValidadorDeISBN();
            foreach(var isbn in livroModel.Isbn)
            {
                validadorISBN.AddISBN(isbn);
            }

            return validadorISBN.Validar();
        }
        public Livro MontarEntidadeLivro(LivroModel livroModel)
        {
            var livro = new Livro();
            livro.Titulo = livroModel.Titulo;
            livro.Autores = String.Join(",", livroModel.Autores);
            livro.Isbn = String.Join(",", livroModel.Isbn);
            livro.NumeroDePaginas = livroModel.NumeroDePaginas;
            livro.Status = livroModel.Status;
            livro.Editora = livroModel.Editora;
            livro.Descricao = livroModel.Descricao;
            livro.CategoriaID = livroModel.Categoria.Id;

            return livro;
        }
        public async Task<LivroModel> Cadastrar(LivroModel livroModel)
        {
            if (!VerificarISBN(livroModel))
            {
                var mensagemError = new MensagemResposta("error", "ISBN enviado está invalido.");
                throw new DadosIvalidoException(mensagemError);
            }
                
            await VerificarExistenciaDoLivro(livroModel.Isbn);
            
            var livro = new MontadoraDeLivro().MontarEntidadeLivro(livroModel);
            _KitapDB.Livros.Add(livro);
            await _KitapDB.SaveChangesAsync();

            return livroModel;
        }
        public LivroModel MontarModeloLivroModel(Livro livro)
        {
            var livroModel = new LivroModel();

            livroModel.Titulo = livro.Titulo;
            livroModel.Autores = livro.Autores.Split(',');
            livroModel.Isbn = livro.Isbn.Split(',');
            livroModel.NumeroDePaginas = livro.NumeroDePaginas;
            livroModel.Status = livro.Status;
            livroModel.Editora = livro.Editora;
            livroModel.Descricao = livro.Descricao;

            var categoriaModel = new CategoriaModel();
            categoriaModel.Id = livro.Categoria.Id;
            categoriaModel.Nome = livro.Categoria.Nome;

            livroModel.Categoria = categoriaModel;

            return livroModel;
        }