public AcervoEditView(tblProduto produto, FuncionarioEditView.EditContext ctx)
        {
            _produtoAtual = produto;
            _context      = ctx;

            InitializeComponent();

            if (ctx == FuncionarioEditView.EditContext.Creating)
            {
            }
            else
            {
                txtID.Text      = $"ID {_produtoAtual.IDProduto}";
                txtEditora.Text = _produtoAtual.Editora;
                txtAno.Text     = $"{_produtoAtual.AnoEdicao?.Year}";
                txtGêneros.Text = string.Join(",", _produtoAtual.tblGeneroProduto.Select(g => g.tblGenero.NomeGenero));
                txtSinopse.Text = _produtoAtual.DescricaoProd;
                txtAutor.Text   = _produtoAtual.AutoresLivro;
                txtTítulo.Text  = _produtoAtual.NomeLivro;

                txtPrateleira.Text = $"{_produtoAtual.Prateleira}";
                txtFileira.Text    = $"{_produtoAtual.Fileira}";
                txtSetor.Text      = $"{_produtoAtual.Setor}";

                var converter = new ByteToImageConverter();

                imgProduto.Source = (ImageSource)converter.Convert(_produtoAtual.ImagemProd, typeof(ImageSource), null, null);
            }
        }
        public AcervoDetailsView(tblProduto produto)
        {
            InitializeComponent();

            using var db  = new TCCFEntities();
            _produtoAtual = db.tblProduto.Include("tblGeneroProduto").Include("tblGeneroProduto.tblGenero").First(p => p.IDProduto == produto.IDProduto);

            txtTítulo.Text  = _produtoAtual.NomeLivro;
            txtGêneros.Text = String.Join(", ", _produtoAtual.tblGeneroProduto.Select(g => g.tblGenero.NomeGenero).ToList());
            txtAutor.Text   = _produtoAtual.AutoresLivro;
            txtSinopse.Text = _produtoAtual.DescricaoProd;
            txtID.Text      = $"Código {_produtoAtual.IDProduto}";
            txtEditora.Text = _produtoAtual.Editora + " " + _produtoAtual.AnoEdicao?.Year;

            txtPrateleira.Text = $"{_produtoAtual.Prateleira}";
            txtFileira.Text    = $"{_produtoAtual.Fileira}";
            txtSetor.Text      = $"{_produtoAtual.Setor}";

            imgBorrow = (Image)btnBorrow.Content;

            if (db.tblEmprestimo.Count(e => e.IDProduto == _produtoAtual.IDProduto) > 0)
            {
                imgBorrow.Source = (BitmapImage)FindResource("XImage");
            }

            txtCount.Text = $"Exemplares Disponíveis: {db.tblProduto.Where(p => p.tblEmprestimo.Count == 0).Count(p => p.ISBN == _produtoAtual.ISBN)}";

            var converter = new ByteToImageConverter();

            imgProduto.Source =
                (ImageSource)converter.Convert(_produtoAtual.ImagemProd, typeof(ImageSource), null, null);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            tblProduto tblProduto = db.tblProduto.Find(id);

            db.tblProduto.Remove(tblProduto);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "ID,Nome,Descricao,Ativo,Perecivel,CategoriaID")] tblProduto tblProduto)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tblProduto).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ID = new SelectList(db.tblCategoriaProduto, "ID", "Nome", tblProduto.ID);
     return(View(tblProduto));
 }
        // GET: Produto/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblProduto tblProduto = db.tblProduto.Find(id);

            if (tblProduto == null)
            {
                return(HttpNotFound());
            }
            return(View(tblProduto));
        }
        // GET: Produto/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tblProduto tblProduto = db.tblProduto.Find(id);

            if (tblProduto == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ID = new SelectList(db.tblCategoriaProduto, "ID", "Nome", tblProduto.ID);
            return(View(tblProduto));
        }
        public void Confirm(object sender, RoutedEventArgs e)
        {
            using var db = new TCCFEntities();

            if (_context == FuncionarioEditView.EditContext.Editing)
            {
                var toEdit = db.tblProduto.First(p => p.IDProduto == _produtoAtual.IDProduto);

                toEdit.Editora       = txtEditora.Text;
                toEdit.AnoEdicao     = new DateTime(int.Parse(txtAno.Text), 1, 1);
                toEdit.DescricaoProd = txtSinopse.Text;
                toEdit.AutoresLivro  = txtAutor.Text;
                toEdit.NomeLivro     = txtTítulo.Text;
                toEdit.Setor         = int.Parse(txtSetor.Text);
                toEdit.Fileira       = int.Parse(txtFileira.Text);
                toEdit.Prateleira    = int.Parse(txtPrateleira.Text);

                toEdit.ImagemProd = (byte[])new ByteToImageConverter().ConvertBack(imgProduto.Source, typeof(byte[]),
                                                                                   null, CultureInfo.CurrentCulture);

                var genStrings = txtGêneros.Text.Split(new[] { "," }, 0).Select(s => s.Trim()).ToArray();

                db.tblGeneroProduto.RemoveRange(db.tblGeneroProduto.Where(gp => gp.IDProduto == _produtoAtual.IDProduto));

                foreach (var genString in genStrings)
                {
                    tblGenero toBind;
                    if (!db.tblGenero.Any(g => g.NomeGenero == genString))
                    {
                        toBind = db.tblGenero.Add(new tblGenero()
                        {
                            NomeGenero = genString
                        });
                    }
                    else
                    {
                        toBind = db.tblGenero.First(g => g.NomeGenero == genString);
                    }
                    db.tblGeneroProduto.Add(new tblGeneroProduto()
                    {
                        tblGenero  = toBind,
                        tblProduto = toEdit
                    });
                }

                db.SaveChanges();
                StateRepository.currentView.Set(new AcervoDetailsView(toEdit));
            }
            else
            {
                var toAdd = new tblProduto()
                {
                    AnoEdicao     = new DateTime(int.Parse(txtAno.Text), 1, 1),
                    DescricaoProd = txtSinopse.Text,
                    AutoresLivro  = txtAutor.Text,
                    NomeLivro     = txtTítulo.Text,
                    Setor         = int.Parse(txtSetor.Text),
                    Fileira       = int.Parse(txtFileira.Text),
                    Prateleira    = int.Parse(txtPrateleira.Text),
                    Editora       = txtEditora.Text,
                    ImagemProd    = (byte[])new ByteToImageConverter().ConvertBack(imgProduto.Source, typeof(byte[]), null, CultureInfo.CurrentCulture)
                };

                db.tblProduto.Add(toAdd);

                var genStrings = txtGêneros.Text.Split(new[] { ", " }, 0);

                foreach (var genString in genStrings)
                {
                    tblGenero toBind;
                    if (!db.tblGenero.Any(g => g.NomeGenero == genString))
                    {
                        toBind = db.tblGenero.Add(new tblGenero()
                        {
                            NomeGenero = genString
                        });
                    }
                    else
                    {
                        toBind = db.tblGenero.First(g => g.NomeGenero == genString);
                    }
                    db.tblGeneroProduto.Add(new tblGeneroProduto()
                    {
                        tblGenero  = toBind,
                        tblProduto = toAdd
                    });
                }
                db.SaveChanges();
                StateRepository.currentView.Set(new AcervoDetailsView(toAdd));
            }
        }