protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {

                int cont = 0;
                ConstruirEF cef = new ConstruirEF();
                NSAADMEntities n = (NSAADMEntities)cef.RecuperaEntity(Entities.MercadoLivre);
                ConverterObjetoMLparaEF cf = new ConverterObjetoMLparaEF();
                Usuario u = cm.RetornaUsuario();
                ConverterObjetoMLparaEF c = new ConverterObjetoMLparaEF();
                ListOrder o;
                ML_Order Ordem;

                ConverteVendas cv = new ConverteVendas();
                GerenciarVendas gv = new GerenciarVendas();
                NSAADM_HMLEntities ent = new NSAADM_HMLEntities();

                do
                {
                    o = cm.RetornarOrdens(u, cont);
                    cont = o.results.Count + cont;

                    foreach (Order or in o.results)
                    {
                        Ordem = (from p in n.ML_Order where p.id == or.id select p).FirstOrDefault();
                        if (Ordem == null)
                        {
                            Ordem = cf.ConverteOrdem(or, n);
                            n.ML_Order.AddObject(Ordem);

                            gv.IncluirVenda(cv.ConverteMLVendaEmVenda(Ordem, ent), ent);

                        }
                        else
                        {
                            cf.AtualizaOrdem(Ordem, or, n);

                            gv.IncluirVenda(cv.ConverteMLVendaEmVenda(Ordem, ent), ent);

                        }

                        n.SaveChanges();

                    }
                } while (o.results.Count == 50);

            }
            catch (Exception ex)
            {

                throw new Exception("Erro na rotina Button1_Click",ex);
            }
        }
 public void IncluirVenda(Venda v, NSAADM_HMLEntities e)
 {
     e.Vendas.AddObject(v);
     e.SaveChanges();
 }
        public Venda ConverteMLVendaEmVenda(ML_Order o, NSAADM_HMLEntities e)
        {
            String id;
            id = o.id.ToString();

            ML_Shipping mS = o.ML_Shipping.FirstOrDefault();
            ML_FeedbackSeller Fb = o.ML_FeedbackSeller.FirstOrDefault();

            Venda v = new Venda();

            v.data_venda = Convert.ToDateTime(o.date_created);
            v.valor_venda = (decimal)o.total_amount;
            v.valor_desconto = 0;
            v.data_final = Convert.ToDateTime(o.date_closed);

            if (Fb != null)
            {
                v.status = ConvertStatus(o.status, Fb.rating);
            }
            else
            {
                v.status = ConvertStatus(o.status, "");
            }

            if (mS != null)
            {
                v.valor_frete = Convert.ToDecimal(mS.cost);
            }

            v.id_ML = id;

            Cliente c = (from p in e.Clientes where p.idML == id select p).FirstOrDefault();
            if (c == null)
            {
                c = new Cliente();
                c.email = o.ML_Usuario1.email;
                c.nome = o.ML_Usuario1.first_name;
                c.idML = o.id.ToString();
                c.nicknName = o.ML_Usuario1.nickname;
                c.ultimoNome = o.ML_Usuario1.last_name;
            }
            v.Cliente = c;

            ML_OrderItem mo = o.ML_OrderItem.FirstOrDefault();
            Produto pr = (from a in e.Produtoes where a.Descr == mo.ML_Item.title select a).FirstOrDefault();
            if (pr == null)
            {
                pr = new Produto();
                pr.Descr = mo.ML_Item.title;
                pr.qtd = (decimal)mo.quantity;
            }

            VendaProduto vp = new VendaProduto();
            vp.Produto = pr;
            vp.Venda = v;
            vp.qtd = (decimal)mo.quantity;

            v.VendaProdutoes.Add(vp);

            return v;
        }