/// <summary>
        /// Metodo para cadastrar um produto somente se sua quantidade for maior que zero
        /// </summary>
        /// <param name="produto">O produto inserido no formulario para ser gravado a base de dados</param>
        /// <returns></returns>
        public void Adicionar(Produto produto)
        {
            if (IsValidacao(produto))
			{
                db.Produtos.Add(produto);
                db.SaveChanges();
            }
        }
 public void Alterar(Produto produto)
 {
     Produto produtoSalvar = banco.Produtos.Where(x => x.Id == produto.Id).First();
     produtoSalvar.Nome = produto.Nome;
     produtoSalvar.Marca = produto.Marca;
     produtoSalvar.QuantidadeDoItem = produto.QuantidadeDoItem;
     produtoSalvar.DataValidade = produto.DataValidade;
     banco.SaveChanges();
 }
 /// <summary>
 /// Metodo para Editar os Produtos
 /// </summary>
 /// <param name="produto"></param>
 public void Editar(Produto produto)
 {
     var objProduto = db.Produtos.Find(produto.Id);
     objProduto.Nome = produto.Nome;
     objProduto.DataValidade = produto.DataValidade;
     objProduto.QuantidadeDoItem = produto.QuantidadeDoItem;
     objProduto.Compra = produto.Compra;
     db.SaveChanges();
 }
        /// <summary>
        /// Metodo de Validação do Campos obrigatorios.
        /// </summary>
        /// <param name="domain"></param>
        /// <returns></returns>
        public bool IsValidacao(Produto domain)
        {

            if (!String.IsNullOrEmpty(domain.Marca))
            {
                return true;
            }

            if (!String.IsNullOrEmpty(domain.Nome))
            {
                return true;
            }

            if (domain.QuantidadeDoItem > 0)
            {
                return true;
            }

            return false;
        }
        // GET: Graficos
        public ActionResult Index()
        {
            var produto = new Produto();

            var intArray = _produtoBo.ObterProdutos().Select(x => x.Quantidade);
            var objectArray = intArray.Cast<object>().ToArray();

            DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")

            .InitChart(new Chart { DefaultSeriesType = ChartTypes.Bar })
            .SetTitle(new Title { Text = "Quantidade de Produtos Comprados" })

        .SetXAxis(new XAxis

        {
            
            Categories = _produtoBo.ObterProdutos().Select(x => x.Produto).ToArray()
        })

         .SetYAxis(new YAxis
         {
             Min = 0,
             Title = new YAxisTitle { Text = "Total Produtos" }
         })

        .SetSeries(new Series
        {

            Name = "Produto",
            Data = new Data(objectArray)
           
        });

            ViewBag.grafico = chart;

            var intArrayCompra = _compraBo.ObterCompra().Select(x => x.QuantidadeItem);
            var objArrayCompra = intArrayCompra.Cast<object>().ToArray();

            DotNet.Highcharts.Highcharts graficoCompra = new DotNet.Highcharts.Highcharts("graficoCompra")

            .InitChart(new Chart { DefaultSeriesType = ChartTypes.Column })
            .SetTitle(new Title { Text = "Quantidade de Compras" })

        .SetXAxis(new XAxis

        {

            Categories = _compraBo.ObterCompra().Select(x => x.Compra).ToArray()
        })

         .SetYAxis(new YAxis
         {
             Min = 0,
             Title = new YAxisTitle { Text = "Total de itens por Compras" }
         })

        .SetSeries(new Series
        {

            Name = "Compras",
            Data = new Data(objArrayCompra)

        });
            ViewBag.Compra = graficoCompra;
           


            return View();
            
        }
        public ActionResult ValidaQuantidade()
        {
            var produto = new Produto();

            produto = this.db.Produtos.FirstOrDefault(x => x.QuantidadeDoItem == 1);

            return Json(produto, JsonRequestBehavior.AllowGet);
            
        }
 public void Salvar(Produto produto)
 {
     banco.Produtos.Add(produto);
 }