private int CompilarCMaisMais(Dominio.Submissao submissao)
        {
            Dominio.Configuracao configuracao = new Dominio.Configuracao();
            string arquivo = System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes, submissao.Id + ".cpp");
            string nome =  System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes,submissao.Id + ".exe");

            string comando = string.Format("/c g++ \"{0}\" -o \"{1}\"", arquivo, nome);
            return ExecutarPromptComando(comando, configuracao.CaminhoGmaismais);
        }
 private void button1_Click(object sender, EventArgs e)
 {
     Dominio.Configuracao config = new Dominio.Configuracao();
     config.Banco = txtBanco.Text;
     config.Porta = textBox1.Text;
     config.Banco = txtBanco.Text;
     config.Usuario = txtUsuario.Text;
     config.Senha = txtSenha.Text;
     config.SalvarConfiguracao();
     MessageBox.Show("Configurado com sucesso");
 }
 private void btnsubmissoes_Click(object sender, EventArgs e)
 {
     folderBrowserDialog1.SelectedPath = txtSubmissoes.Text;
     if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     {
         txtSubmissoes.Text = folderBrowserDialog1.SelectedPath;
         Dominio.Configuracao config = new Dominio.Configuracao();
         config.CaminhoSalvarSubmissoes = txtSubmissoes.Text;
         config.SalvarConfiguracao();
     }
 }
        public int Executar(Dominio.Questao questao, Dominio.Submissao submissao)
        {
            Dominio.Configuracao configuracao = new Dominio.Configuracao();
            string arquivoIn = System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes, questao.ArquivoEntrada);
            string executavel = System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes, submissao.Id + ".exe");
            string saida = System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes, submissao.Id + ".out");

            string comando = string.Format("/c type \"{0}\"|{1} > \"{2}\"",arquivoIn, executavel, saida); //TODO Vou tentar usar o type

            return ExecutarPromptComandoComTempo(comando, questao.TimeLimit * 1000, submissao.Id.ToString());
        }
        //DONE
        public int Comparar(Dominio.Questao questao, Dominio.Submissao submissao)
        {
            Dominio.Configuracao configuracao = new Dominio.Configuracao();

            string caminhoSol = System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes, questao.ArquivoSaida);
            string caminhoSaida = System.IO.Path.Combine(configuracao.CaminhoSalvarSubmissoes, submissao.Id + ".out");

            System.IO.StreamReader reader = new System.IO.StreamReader(caminhoSol, System.Text.Encoding.UTF8);

            List<string> respostaCerta = new List<string>();

            while (reader.EndOfStream ==false)
            {
                respostaCerta.Add(reader.ReadLine());
            }
            reader.Close();

            System.IO.StreamReader leitura = new System.IO.StreamReader(caminhoSaida, System.Text.Encoding.UTF8);

            List<string> respostaSubmissao = new List<string>();

            while (leitura.EndOfStream==false)
            {
                respostaSubmissao.Add(leitura.ReadLine());
            }
            leitura.Close();

            if (respostaCerta.Count != respostaSubmissao.Count)
            {
                //TODO Verificar se talvez a ultima linha não é em branco, dai retornar Presentation Error
                return -1;
            }

            for (int i = 0; i < respostaCerta.Count; i++)
            {
                string semEspacoNoFim = respostaSubmissao[i].TrimEnd(' ');
                if (respostaCerta[i] != semEspacoNoFim)
                {
                    return -1;
                }
            }

            return 0;
        }
        private void btnIniciar_Click(object sender, EventArgs e)
        {
            Dominio.Configuracao configuracao = new Dominio.Configuracao();
            if (configuracao.IsValido())
            {
                int idContest = (int)cmbContest.SelectedValue;
                if (idContest > 0)
                {
                    _Questoes = _QuestaoRepositorio.Questoes(idContest);
                    foreach (var item in _Questoes)
                    {
                        _QuestaoRepositorio.DownloadQuestao(item);
                    }

                    lstProblemas.DataSource = _Questoes;

                    cmbContest.Enabled = false;
                    timer2.Enabled = true;
                }
            }
        }
 private void Configuracoes_Load(object sender, EventArgs e)
 {
     Dominio.Configuracao config = new Dominio.Configuracao();
     txtC.Text = config.CaminhoGcc;
     txtCmaimais.Text = config.CaminhoGmaismais;
     txtJava.Text = config.CaminhoJava;
     txtSubmissoes.Text = config.CaminhoSalvarSubmissoes;
 }