public DataTable CriarEntradasProximaRodada()
        {
            JObject obj = ObterDadosSerializados();
            JToken token = obj["lista_de_jogos"]["campeonato"]["edicao_campeonato"]["fases"][0];
            JToken dados = token["jogos"];

            BaseVO competicao_ano_rodada = new CompeticaoAnoRodadaBO().ObterDadosVOPorCampo("id_rodada", String.Empty, true);
            Int32 rodada = Convert.ToInt32(competicao_ano_rodada.Campo("id_rodada").Valor);

            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("JogoID", typeof(string)));
            dt.Columns.Add(new DataColumn("Data", typeof(string)));
            dt.Columns.Add(new DataColumn("Hora", typeof(string)));
            dt.Columns.Add(new DataColumn("Local", typeof(string)));
            dt.Columns.Add(new DataColumn("Mandante", typeof(object)));
            dt.Columns.Add(new DataColumn("Visitante", typeof(object)));

            List<String> lista = new List<String>();

            foreach (JToken t in dados)
            {
                if (((JValue)t["placar_mandante"]).Value == null)
                {
                    if (rodada == (Int32)t["rodada"])
                    {
                        dt.Columns["JogoID"].DefaultValue = Convert.ToString(((Int32)t["jogo_id"]));
                        dt.Columns["Hora"].DefaultValue = ((string)t["hora"]);
                        dt.Columns["Data"].DefaultValue = ((string)t["data"]);
                        dt.Columns["Local"].DefaultValue = ((string)t["local_jogo"]);
                        dt.Columns["Mandante"].DefaultValue = new Control().ResolveUrl((String)t["escudo_mandante"]);
                        dt.Columns["Visitante"].DefaultValue = new Control().ResolveUrl((String)t["escudo_visitante"]);
                        dt.Rows.Add(dt.NewRow());
                    }
                    else
                        break;
                }
            }

            return dt;
        }
        /// <summary>
        /// Insere as informações de anos e competições por rodada
        /// </summary>
        private void CriarEntradasDeAnoCompeticaoRodadas()
        {
            //List<String> lista_rodadas = new RodadaBO().ObterLista(null);
            CompeticaoAnoRodadaBO carodadaBO = new CompeticaoAnoRodadaBO();

            //foreach (String s in lista_rodadas)
            //{
                //Verificar se a rodada foi "realizada"
                JObject obj = ObterDadosSerializados();
                JToken token = obj["lista_de_jogos"]["campeonato"]["edicao_campeonato"]["fases"][0];
                JToken dados = token["jogos"];

                List<BaseVO> lista_rodada = carodadaBO.ObterListaVO(null);

                for (int i = 0; i < dados.Count(); i++)
                {
                    if (lista_rodada.Count == 0)
                    {
                        CompeticaoAnoRodadaVO carodada = new CompeticaoAnoRodadaVO();

                        //Salvaremos apenas na mesma competicao_ano *vrl
                        carodada.Campo("id_competicao_ano").Valor = 1;

                        bool realizada = ((JValue)dados.ElementAt(i)["placar_mandante"]).Value != null;

                        carodada.Campo("realizada").Valor = realizada ? "1" : "0";

                        carodada.Campo("id_rodada").Valor = (Int32)dados.ElementAt(i)["rodada"];

                        carodadaBO.Incluir(carodada);
                    }
                    else
                    {
                        bool realizada = ((JValue)dados.ElementAt(i)["placar_mandante"]).Value != null;
                        int valor = Convert.ToInt32(lista_rodada.ElementAt(i).Campo("realizada").Valor);
                        if (valor == 0 && realizada)
                        {
                            //Salvaremos apenas na mesma competicao_ano *vrl
                            lista_rodada.ElementAt(i).Campo("id_competicao_ano").Valor = 1;
                            lista_rodada.ElementAt(i).Campo("realizada").Valor = 1;
                            lista_rodada.ElementAt(i).Campo("id_rodada").Valor = (Int32)dados.ElementAt(i)["rodada"];
                            carodadaBO.Alterar(lista_rodada.ElementAt(i));
                        }
                    }
                }

                //foreach (JToken t in dados)
                //{
                //    CompeticaoAnoRodadaVO carodada = new CompeticaoAnoRodadaVO();

                //    //Salvaremos apenas na mesma competicao_ano *vrl
                //    carodada.Campo("id_competicao_ano").Valor = 1;

                //    //if (t["placar_mandante"] == null) return;

                //    bool realizada = ((JValue)t["placar_mandante"]).Value != null;

                //    carodada.Campo("realizada").Valor = realizada ? "1" : "0";

                //    carodada.Campo("id_rodada").Valor = (Int32)t["rodada"];

                //    //if (!carodadaBO.ExisteRegistro("id_rodada",
                //    //                               carodada.Campo("id_rodada").Valor.ToString().Trim(),
                //    //                               carodada))
                //    if (realizada)
                //        //TODO: Criar Lista de RodadaAnoVO que conterá os ids e é só atualizar o "realizada"
                //        carodadaBO.Incluir(carodada);
                //}
            //            }
        }
        /// <summary>
        /// Insere as informações de jogos na base de dados
        /// </summary>
        public void CriarEntradasDeJogos()
        {
            CriarEntradasDeRodadas();
            CriarEntradasDeAnoCompeticaoRodadas();
            CriarEntradasDeAnoCompeticaoTimes();

            JObject obj = ObterDadosSerializados();
            JToken token = obj["lista_de_jogos"]["campeonato"]["edicao_campeonato"]["fases"][0];
            JToken dados = token["jogos"];

            JogoBO jogoBO = new JogoBO();
            EstadioBO estadioBO = new EstadioBO();
            CompeticaoAnoRodadaBO competicaoAnoRodadaBO = new CompeticaoAnoRodadaBO();

            foreach (JToken t in dados)
            {
                JogoVO jogo = new JogoVO();
                jogo.Campo("id_jogo").Valor = (Int32)t["jogo_id"];
                jogo.Campo("id_competicao_ano_rodada").Valor = competicaoAnoRodadaBO.ObterDadosVOPorCampo("id_rodada",
                                                               Convert.ToString((Int32)t["rodada"]), true)
                                                               .Campo("id_competicao_ano_rodada").Valor;
                /* O procedimento acima também poderia ser reescrito da seguinte forma:
                 *
                 *
                 *
                 * BaseVO competicao = competicaoAnoRodadaBO
                 *                     .ObterDadosVOPorCampo("id_rodada", Convert.ToString((Int32)t["rodada"]), true);
                 *
                 * jogo.Campo("id_competicao_ano_rodada).Valor = competicao.Campo("id_competicao").Valor;
                 *
                 *                                                                                               *vrl
                 */

                jogo.Campo("id_local").Valor = estadioBO.ObterDadosVOPorCampo("descricao", ((String)t["local_jogo"]).Trim(),
                                                                              true).Campo("id_local").Valor;

                if (!((String)t["hora"] == null)) //Ainda há jogos sem definição de horário.
                {
                    String sHora = ConverterHora(((String)t["hora"]).Trim());
                    jogo.Campo("dt_jogo").Valor = ((String)t["data_original"]).Trim() + " " + sHora;
                }
                else
                { //Zerar hora e data, mas inserir tabela com os próximos jogos

                    String sHora = ConverterHora("00h00");
                    jogo.Campo("dt_jogo").Valor = "01-01-1900 " + sHora;
                }

                if (!jogoBO.ExisteRegistro("id_jogo", jogo.Campo("id_jogo").Valor.ToString().Trim(), jogo))
                    jogoBO.Incluir(jogo);

            }
        }