private void AtualizarListaDeEditoras()
        {
            var editoras = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities()
                           .EDITORA.Select(autor => new
            {
                Id   = autor.ID,
                Nome = autor.NOME,
            });

            rptEditoras.DataSource = editoras.ToList();
            rptEditoras.DataBind();
        }
        private void AtualizarListaDeAutores(int idLivro)
        {
            var autores = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities()
                          .AUTOR.Select(autor => new
            {
                Id          = autor.ID,
                Nome        = autor.NOME,
                Selecionado = autor.LIVRO_AUTOR.Any(x => x.ID_LIVRO == idLivro)
            });

            rptAutores.DataSource = autores.ToList();
            rptAutores.DataBind();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var livros = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities()
                         .LIVRO.Select(livro => new
            {
                livro.ID,
                livro.NOME,
                livro.VALOR,
                AutoresNomes = livro.LIVRO_AUTOR.Select(x => x.AUTOR.NOME)
            }).OrderBy(x => x.NOME);

            rptLivros.DataSource = livros.ToList();
            rptLivros.DataBind();
        }
 protected void btnAdicionarEditora_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrWhiteSpace(txtAdicionarEditora.Text))
     {
         using (var model = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities())
         {
             var editora = new LivrariaDaCidade.Model.EDITORA();
             editora.NOME = txtAdicionarEditora.Text;
             model.EDITORA.Add(editora);
             model.SaveChanges();
         }
         txtAdicionarEditora.Text = "";
         AtualizarListaDeEditoras();
         upAutores.Update();
     }
 }
 protected void btnAdicionarNovoAutor_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrWhiteSpace(txtAdicionarAutor.Text))
     {
         using (var model = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities())
         {
             var autor = new LivrariaDaCidade.Model.AUTOR();
             autor.NOME = txtAdicionarAutor.Text;
             model.AUTOR.Add(autor);
             model.SaveChanges();
         }
         txtAdicionarAutor.Text = "";
         AtualizarListaDeAutores(ObterIDLivroDaURL());
         upAutores.Update();
     }
 }
        protected void btnExcluir_Click(object sender, EventArgs e)
        {
            int idLivro = ObterIDLivroDaURL();

            if (idLivro > 0)
            {
                using (var model = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities())
                {
                    var livro = model.LIVRO.FirstOrDefault(x => x.ID == idLivro);
                    if (livro != null)
                    {
                        model.LIVRO_AUTOR.RemoveRange(livro.LIVRO_AUTOR);
                        model.LIVRO.Remove(livro);
                        model.SaveChanges();
                    }
                }
            }
            Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
        }
        private void PreencherTelaComDadosDoLivro(int idLivro)
        {
            var livroEdicao = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities()
                              .LIVRO.Select(livro => new
            {
                Id      = livro.ID,
                Nome    = livro.NOME,
                Autores = livro.LIVRO_AUTOR.Select(x => x.AUTOR),
                Editora = livro.EDITORA,
                Valor   = livro.VALOR,
                Sinopse = livro.SINOPSE
            })
                              .FirstOrDefault(x => x.Id == idLivro);

            txtNomeLivro.Text   = livroEdicao.Nome;
            txtNomeAutores.Text = string.Join(",", livroEdicao.Autores.Select(x => x.NOME));
            hfIdAutores.Value   = string.Join(",", livroEdicao.Autores.Select(x => x.ID));
            txtNomeEditora.Text = livroEdicao.Editora.NOME;
            hfIdEditora.Value   = livroEdicao.Editora.ID.ToString();
            txtValor.Text       = livroEdicao.Valor.ToString();
            txtSinopse.Text     = livroEdicao.Sinopse;
            Page.Title          = livroEdicao.Nome;
        }
 protected void btnSalvarLivro_Click(object sender, EventArgs e)
 {
     try
     {
         int idLivro = ObterIDLivroDaURL();
         using (var model = new LivrariaDaCidade.Model.LivrariaDaCidadeDBEntities())
         {
             Model.LIVRO livro;
             if (idLivro > 0)
             {
                 livro = model.LIVRO.FirstOrDefault(x => x.ID == idLivro);
                 if (livro != null)
                 {
                     model.LIVRO_AUTOR.RemoveRange(livro.LIVRO_AUTOR);
                     PopularInstanciaComDadosDaTela(livro);
                     model.SaveChanges();
                 }
             }
             else
             {
                 livro = new Model.LIVRO();
                 PopularInstanciaComDadosDaTela(livro);
                 livro.DATA_CADASTRO = DateTime.Now;
                 model.LIVRO.Add(livro);
                 model.LIVRO_AUTOR.AddRange(livro.LIVRO_AUTOR);
                 model.SaveChanges();
             }
         }
         MostrarMsgSucesso("Livro foi salvo com sucesso!");
         LimparTela();
     }
     catch (Exception ex)
     {
         MostrarMsgErro("Um erro impediu que o livro fosse salvo corretamente. Mais detalhes: " + ex.Message);
     }
 }