private void gerarBurndown()
        {
            if (cmbSprint.SelectedIndex >= 0)
            {
                ComboBoxItem item   = (ComboBoxItem)cmbSprint.SelectedItem;
                int          codigo = Convert.ToInt32(item.Tag);

                SprintDAO     sDAO  = new SprintDAO();
                List <Sprint> lista = sDAO.recuperar(Sprint.criarListaParametros(codigo));
                if (lista.Count > 0)
                {
                    Sprint sprint  = lista[0];
                    int    numDias = sprint.DtFinal.Subtract(sprint.DtInicio).Days + 1;

                    //Eixo X
                    List <string> listaX = gerarEixoX(sprint);

                    //Eixo Y
                    TarefaHistoricoDAO thDAO           = new TarefaHistoricoDAO();
                    decimal            estimativaTotal = thDAO.recuperarEstimativaTotalPorSprint(sprint.Nome);

                    if (estimativaTotal > 0)
                    {
                        gerarGrafico(sprint.Nome, numDias, estimativaTotal, listaX);
                    }
                    else
                    {
                        Alerta alerta = new Alerta("Não Existem Tarefas com estimativas.");
                        alerta.Show();
                    }
                }
            }
        }
        private void btnSim_Click(object sender, RoutedEventArgs e)
        {
            TarefaDAO tDAO = new TarefaDAO();

            tDAO.excluirPorSprintPorData(this.planejadoPara, this.data);

            TarefaHistoricoDAO thDAO = new TarefaHistoricoDAO();

            thDAO.excluirPorSprintPorData(this.planejadoPara, this.data);

            this.uploadTela.realizarUpload(this.file);

            this.Close();
        }
        private List <KeyValuePair <string, int> > gerarLinhaProgresso(string planejadoPara, int numDias, decimal estimativaTotal, List <string> listaX)
        {
            // =$C$2-SOMA(Dados.J$2:J$201)
            List <KeyValuePair <string, int> > lnProgresso = new List <KeyValuePair <string, int> >();

            TarefaHistoricoDAO tDAO = new TarefaHistoricoDAO();
            List <KeyValuePair <string, decimal> > listaProgresso = tDAO.recuperarTempoGastoTotalPorData(planejadoPara);

            int dia          = 0;
            int diaProgresso = 0;

            if ((listaProgresso.Count == 0 && dia < listaX.Count) || (Convert.ToDateTime(listaX[dia]).CompareTo(Convert.ToDateTime(listaProgresso[diaProgresso].Key)) < 0))
            {
                while (dia < listaX.Count && Convert.ToDateTime(listaX[dia]).CompareTo(Convert.ToDateTime(listaProgresso[diaProgresso].Key)) < 0)
                {
                    lnProgresso.Add(new KeyValuePair <string, int>(listaX[dia], Convert.ToInt32(estimativaTotal)));
                    dia++;
                }
            }

            decimal tempoGasto = estimativaTotal;

            while (dia < numDias && dia < listaX.Count)
            {
                if (Convert.ToDateTime(listaX[dia]).Equals(Convert.ToDateTime(listaProgresso[diaProgresso].Key)))
                {
                    tempoGasto = estimativaTotal - listaProgresso[diaProgresso].Value;
                    lnProgresso.Add(new KeyValuePair <string, int>(listaX[dia], Convert.ToInt32(tempoGasto)));
                    diaProgresso++;
                }
                else
                {
                    lnProgresso.Add(new KeyValuePair <string, int>(listaX[dia], Convert.ToInt32(tempoGasto)));
                }
                if (diaProgresso == listaProgresso.Count)
                {
                    break;
                }
                dia++;
            }
            return(lnProgresso);
        }
        public void realizarUpload(String file)
        {
            string[] lines = System.IO.File.ReadAllLines(file);

            if (Util.validarArquivoTarefa(lines[0]) == true)
            {
                List <Funcionario> listaCacheFuncionario = new List <Funcionario>();

                TarefaDAO     tDAO             = new TarefaDAO();
                List <Tarefa> listaCacheTarefa = tDAO.recuperar();

                List <Tarefa> listaTarefaIncluir = new List <Tarefa>();

                List <Tarefa> listaTarefaAtualizar = new List <Tarefa>();

                List <Tarefa> listaTarefaHistorico = new List <Tarefa>();

                for (int i = 1; i < lines.Length; i++)
                {
                    string[] linha = lines[i].Replace("\"", "").Split('\t');

                    Tarefa t = new Tarefa();
                    // t.Codigo = reader.GetInt32(0);
                    t.Tipo                = linha[0];
                    t.Id                  = Convert.ToInt32(linha[1]);
                    t.Titulo              = linha[2];
                    t.Status              = linha[4];
                    t.PlanejadoPara       = linha[5];
                    t.Estimativa          = DataHoraUtil.formatarHora(linha[6]);
                    t.EstimativaCorrigida = DataHoraUtil.formatarHora(linha[7]);
                    t.TempoGasto          = DataHoraUtil.formatarHora(linha[8]);
                    t.Pai                 = linha[9].Replace("#", "");
                    t.DataColeta          = Convert.ToDateTime(txtData.Text);

                    String responsavel = linha[3];
                    t.Responsavel = recuperarFuncionario(listaCacheFuncionario, responsavel);

                    if (!existeTarefa(listaCacheTarefa, t))
                    {
                        listaTarefaIncluir.Add(t);
                    }
                    else
                    {
                        listaTarefaAtualizar.Add(t);
                    }
                    listaTarefaHistorico.Add(t);
                }

                if (listaTarefaIncluir.Count > 0)
                {
                    tDAO.incluir(listaTarefaIncluir);
                }
                if (listaTarefaAtualizar.Count > 0)
                {
                    tDAO.atualizar(listaTarefaAtualizar);
                }
                if (listaTarefaHistorico.Count > 0)
                {
                    TarefaHistoricoDAO thDAO = new TarefaHistoricoDAO();
                    thDAO.incluir(listaTarefaHistorico);
                }

                Alerta alerta = new Alerta("Arquivo incluido com sucesso!");
                alerta.Show();

                preencherLista(new Dictionary <string, string>());
            }
            else
            {
                Alerta alerta = new Alerta("Arquivo invalido");
                alerta.Show();
            }
        }