public static void Create(Classificacao pClassific)
        {
            int ponto = 0;

            DataBase db = GetDataBase();
            var query = from clas in db.Classificacao orderby clas.nome descending select clas;

            List<Classificacao> lista = new List<Classificacao>(query.AsEnumerable());

            foreach (var item in lista)
            {

               // if (item.nome.Equals(pClassific.nome))
                if(item.nome.Equals(pClassific.nome, StringComparison.OrdinalIgnoreCase))
                {
                    ponto = 1;

                }

            }

            if (ponto == 0)
            {
                db.Classificacao.InsertOnSubmit(pClassific);
                db.SubmitChanges();
            }
            else
            {
                pClassific.referencia = 1;

            }
        }
        public static void DeleteObject(Classificacao pClassific)
        {
            DataBase db = GetDataBase();
            var query = from c in db.Classificacao
                        where c.id == pClassific.id
                        select c;

            db.Classificacao.DeleteOnSubmit(query.ToList()[0]);
            db.SubmitChanges();
        }
        private void appBarDelete(object sender, EventArgs e)
        {
            if (pagina != null)
            {
                if (MessageBox.Show("Excluir Produto ?") == MessageBoxResult.OK)
                {

                    List<double> listaPreco = Repositorio.ClassificRepositorio.GetPreco(pagina.classificacao);
                    List<Classificacao> listaTudo = Repositorio.ClassificRepositorio.Busca();

                    if (listaPreco.Count() != 0)
                    {

                        foreach (var item in listaTudo)
                        {
                            if (item.nome == Convert.ToString(pagina.classificacao))
                            {
                                Classificacao classific = new Classificacao
                                {
                                    id = item.id,
                                    nome = item.nome,
                                    referencia = item.referencia,
                                    total = listaPreco.Sum() - pagina.preco
                                };
                                ClassificRepositorio.Update(classific);

                            }

                        }

                    }

                    //ORIGINAL
                    CompraRepositorio.DeleteObject(pagina);

                    //ClassificRepositorio.DeleteObject(pag);
                    RefreshListaCompras();

                }

            }
            else
            {
                MessageBox.Show("Selecione para excluir");
                return;
            }
        }
        private List<PChart> RefreshPieChart()
        {
            EmPizza.Clear();

            List<string> busca = Repositorio.PeriodoRepositorio.GetOne();

            if (busca.Count == 0)
            {

                ParseJsonPeriodos();
                List<string> listaPeriodos = Repositorio.PeriodoRepositorio.GetOne();
                this.lpkPeriodos.ItemsSource = listaPeriodos;

                // List<Cota> listaFav = Repositorio.CotaRepositorio.Get(id);

                string mes = lpkPeriodos.SelectedItem.ToString();

                List<string> periodo = Repositorio.PeriodoRepositorio.BuscaPeriodo(mes);
                string per = Convert.ToString(periodo);
                //List<Classificacao> lista = Repositorio.ClassificRepositorio.ListaNome(per);
                // this.LstMoedas.ItemsSource = listaFav;

            }
            else
            {

                //PC1.DataSource = EmPizza;

                List<string> listaPeriodos = Repositorio.PeriodoRepositorio.GetOne();
                this.lpkPeriodos.ItemsSource = listaPeriodos;

                // List<Cota> listaFav = Repositorio.CotaRepositorio.Get(id);

                string mes = lpkPeriodos.SelectedItem.ToString();

                List<string> periodo = Repositorio.PeriodoRepositorio.BuscaPeriodo(mes);
                string per = periodo[0];

               // List<Classificacao> lista = Repositorio.ClassificRepositorio.ListaNome(per);
                List<Classificacao> listaTudo = Repositorio.ClassificRepositorio.Busca();

               List<double> listaPreco = Repositorio.CompraRepositorio.GetPreco(per);

                List<CompraEntidade> listaPeriodo = Repositorio.CompraRepositorio.GetPeriodo(per);

                if (listaPeriodo.Count != 0)
                {

                    //Resetar Classificação
                foreach (var item in listaTudo)
                {
                    Classificacao classific = new Classificacao
                        {
                            id = item.id,
                            nome = item.nome,
                            referencia = 0,
                            //total = listaPreco.Sum()
                            total = 0

                        };

                    ClassificRepositorio.Update(classific);
                }

                //Aux CompraAux;
                foreach (var item in listaPeriodo)
                {
                    foreach (var itemClassific in listaTudo)
                    {
                        if (item.classificacao == itemClassific.nome && itemClassific.referencia == 0)
                        {
                            //List<double> listaTotal = Repositorio.PeriodoRepositorio.buscaTotal(com);
                            Aux compras = new Aux
                            {
                                id = item.id,
                                preco = item.preco,
                                classificacao = item.classificacao,
                                periodo = item.periodo,

                            };
                           List<double> listaTotal = Repositorio.PeriodoRepositorio.buscaTotal(compras);

                            Classificacao classific = new Classificacao
                                {
                                    id = itemClassific.id,
                                    nome = itemClassific.nome,
                                    referencia = 1,
                                  total = listaTotal.Sum()

                                };

                            ClassificRepositorio.Update(classific);
                            listaTudo = Repositorio.ClassificRepositorio.Busca();
                        }
                        else
                        {
                            if (listaPeriodo.Count == 0)
                            {

                                //Resetar Classificação
                                Classificacao classific = new Classificacao
                                {
                                    id = itemClassific.id,
                                    nome = itemClassific.nome,
                                    referencia = 0,
                                    //total = listaPreco.Sum()
                                    total = 0
                                };
                                ClassificRepositorio.Update(classific);
                            }
                        }

                    //EmPizza.Add(pieChart);
                    //ClassificRepositorio.Update(classific);

                    }

                }

            }
                else
                {
                    //EmPizza.Add(null);
                    //PC1.DataSource = null;

                    //Resetar Classificação
                    foreach (var item in listaTudo)
                    {
                        Classificacao classific = new Classificacao
                        {
                            id = item.id,
                            nome = item.nome,
                            referencia = 0,
                            //total = listaPreco.Sum()
                            total = 0

                        };

                        ClassificRepositorio.Update(classific);
                    }

                }

                //List<double> listaTotal = Repositorio.PeriodoRepositorio.buscaTotal(CompraAux);

                //foreach (var item in listaPeriodo)
                //{

                //    double totalizando = item.Sum();

                //    foreach (var itemClas in listaTudo)
                //    {

                //        if (item.classificacao == itemClas.nome)
                //        {

                //            Classificacao classific = new Classificacao
                //                {
                //                    id = itemClas.id,
                //                    nome = itemClas.nome,
                //                    referencia = itemClas.referencia,
                //                    //total = listaPreco.Sum()
                //                    total = listaPeriodo.

                //                };

                //            ClassificRepositorio.Update(classific);

                //        }
                //    }
                //}

                //tentei concatenar mas parece que nao deu muito certo continuar tentando

                //foreach (var itemCompra in listaPeriodo)
                //{
                //    foreach (var item in listaTudo)
                //    {
                //        if (item.nome == itemCompra.classificacao)
                //        {

                //            Classificacao classific = new Classificacao
                //            {
                //                id = item.id,
                //                nome = item.nome,
                //                referencia = item.referencia,
                //                //total = listaPreco.Sum()
                //                total = itemCompra.preco

                //            };

                //            ClassificRepositorio.Update(classific);

                //        }

                //    }

                //}

                // this.LstMoedas.ItemsSource = listaFav;

                //string apelido = lpkMoedas.SelectedItem.ToString();
                 List<Classificacao> listaAux = Repositorio.ClassificRepositorio.Busca();

                // List<Classificacao> listaInteiro = Repositorio.ClassificRepositorio.BuscaInteiro(1);

                // this.LstMoedas.ItemsSource = listaFav;
                //double contador = (Convert.ToDouble(lista.Sum()));
                //    List<CompraEntidade> lista = Repositorio.CompraRepositorio.Get(id);

                 //if (EmPizza[0] != null)
                 //{
                 foreach (var item2 in listaAux)
                     {
                         // DateTime dtt = Convert.ToDateTime(item2.Data);
                         //Console.WriteLine("Year: {0}, Month: {1}, Day: {2}", dtt.Year, dtt.Month, dtt.Day);
                         //double total = (Convert.ToDouble(item2.Sum()));
                         //EmPizza.Clear();
                         if (item2.total != 0)
                         {

                             PChart pieChart = new PChart
                             {
                                 title = item2.nome,
                                 //Convert.ToString(dtt.Day) + "/" + Convert.ToString(dtt.Month),
                                 value = item2.total
                             };
                             EmPizza.Add(pieChart);
                         }
                         else
                         {
                              EmPizza = EmPizzaZero;
                             //PChart pieChart = new PChart
                             //{
                             //    title = "",
                             //    //Convert.ToString(dtt.Day) + "/" + Convert.ToString(dtt.Month),
                             //    value = 0
                             //};
                             //EmPizza.Add(pieChart);
                         }

                     }
                    //else
                    //{
                    //    EmPizza= null;

                    //}

                //}
            }
            //if (EmPizza.Count != 0)
            //{

                return EmPizza;

            //}
            //else
            //{

            //    return EmPizzaZero;
            //}
        }
        public static void Update(Classificacao pClassific)
        {
            DataBase db = GetDataBase();

            Classificacao cla = (from c in db.Classificacao
                           where c.id == pClassific.id
                           select c).First();

            cla.nome = pClassific.nome;
            cla.total = pClassific.total;
            cla.referencia = pClassific.referencia;

            db.SubmitChanges();
        }
 //ORIGINAL
 private void onSelecionChange(object sender, SelectionChangedEventArgs e)
 {
     classific = (sender as ListBox).SelectedItem as Classificacao;
 }
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            //String _Content = String.Format("Estabelecimento: {0}\n Produto: {1}\n Tipo: {2}\n Preço: R$ {3}", txtName.Text, txtProduto.Text, lpkCountry.SelectedItem, txtPreco.Text);
            //MessageBox.Show(_Content);

            if (lpkEstabelecimento.SelectedItem == null)
            {
                MessageBox.Show(" A Estabelecimento deve ser preenchido");
                return;
            }

            if (lpkProduto.SelectedItem == null)
            {
                MessageBox.Show(" A Produto deve ser preenchido");
                return;
            }

            if (lpkClassific.SelectedItem == null)
            {
                MessageBox.Show(" A Classificação deve ser preenchida");
                return;
            }

            if (txtPreco.Text == string.Empty)
            {
                MessageBox.Show("O Preço deve ser preenchido");
                return;
            }

            if (txtQtd.Text == string.Empty)
            {
                MessageBox.Show("A Quantidade deve ser preenchida");
                return;
            }

            Double aux = (Convert.ToDouble(txtPreco.Text));
            string resultado = string.Format("{0:00.##}", aux);

             List<double> listaPreco = Repositorio.ClassificRepositorio.GetPreco((Convert.ToString(lpkClassific.SelectedItem)));
             List<Classificacao> listaTudo = Repositorio.ClassificRepositorio.Busca();

                foreach (var item in listaTudo)
                {
                    if(item.nome == Convert.ToString(lpkClassific.SelectedItem))
                    {
                        Classificacao classific = new Classificacao
                        {
                            id = item.id,
                           nome = item.nome,
                           referencia = item.referencia,
                            total = listaPreco.Sum() + aux

                        };

                        ClassificRepositorio.Update(classific);

                    }

                }

            CompraEntidade compra = new CompraEntidade
            {
                estabelecimento = (Convert.ToString(lpkEstabelecimento.SelectedItem)),
                produto = (Convert.ToString(lpkProduto.SelectedItem)),
                classificacao = (Convert.ToString(lpkClassific.SelectedItem)),
                preco = (Convert.ToDouble(resultado)),
                Data = DateTime.Now.ToString("dd/MM/yyyy"),
                qtd = (Convert.ToDouble(txtQtd.Text)),
                periodo = DateTime.Now.ToString("MM")

            };

            CompraRepositorio.Create(compra);

            MessageBox.Show("Compra Cadastrada com Sucesso.");

            Navigate("/ListaCompras.xaml");
        }
        private void btnClassif_Click(object sender, RoutedEventArgs e)
        {
            if (TxtClassif.Text == string.Empty)
            {
                MessageBox.Show(" A Classificação deve ser preenchida");
                return;
            }

            if (cla != null)
            {

                cla.id = int.Parse(TxtId.Text);
                cla.nome = TxtClassif.Text;

                ClassificRepositorio.Update(cla);
                MessageBox.Show("Dados Alterados com sucesso.");
            }

            if (cla == null)
            {
                Classificacao classificacao = new Classificacao
                {
                    id = int.Parse(TxtId.Text),
                    nome = TxtClassif.Text

                };
                // Uri caminho = new Uri("/ProvaRepositorio.cs?parametro=" + TxtId.Text, UriKind.RelativeOrAbsolute);
                ClassificRepositorio.Create(classificacao);
                MessageBox.Show("Categoria Cadastrada com Sucesso.");
            }

            //Classificacao classificacao = new Classificacao
            //{
            //    nome = TxtClassif.Text
            //};

            //ClassificRepositorio.Create(classificacao);

            //if (classificacao.referencia != 1)
            //{
            //    //Navigate("Compra.xaml");
            //    MessageBox.Show("Cadastrada com Sucesso.");
            //}
            //else
            //{
            //    MessageBox.Show("Esta informação já consta no banco de dados");
            //}

            //ClassificRepositorio.Create(classificacao);
            //MessageBox.Show("Cadastrada com Sucesso.");

            NavigationService.GoBack();
        }