private void SalvarPesquisa(DirectEventArgs e)
        {
            try
            {
                PesquisaOpiniaoVO pesquisa = new PesquisaOpiniaoVO();
                if (base.AcaoTela == Common.AcaoTela.Edicao)
                {
                    pesquisa = PesquisaSelecionada;
                    List<RespostaVO> respostas = JSON.Deserialize<List<RespostaVO>>(e.ExtraParams["respostas"]);
                    List<UsuarioVO> usuarios = JSON.Deserialize<List<UsuarioVO>>(e.ExtraParams["usuarios"]);
                    foreach (RespostaVO r in respostas)
                    {
                        if (!pesquisa.Respostas.Any(x => x.Id == r.Id))
                        {
                            r.Id = 0;
                            pesquisa.Respostas.Add(r);
                        }
                        else
                        {
                            r.Usuarios = r.Usuarios.Where(x => usuarios.Any(x1 => x1.Id == x.Id)).ToList();
                        }
                    }
                    pesquisa.Respostas = pesquisa.Respostas.Where(x => respostas.Any(x1 => x1.Id == x.Id)).ToList();
                }
                else
                    pesquisa.Respostas = JSON.Deserialize<List<RespostaVO>>(e.ExtraParams["respostas"]);

                pesquisa.Usuarios = JSON.Deserialize<List<UsuarioVO>>(e.ExtraParams["usuarios"]);
                pesquisa.DataInicial = txtDataInicial.SelectedDate.Add(txtHoraInicial.SelectedTime);
                pesquisa.DataFinal = txtDataFinal.SelectedDate.Add(txtHoraFinal.SelectedTime);
                pesquisa.Respostas.ToList().ForEach(x => x.Pesquisa = pesquisa);

                if (pesquisa.DataInicial > pesquisa.DataFinal)
                {
                    base.MostrarMensagem("Erro", "Data e horário inicial não pode ser superior ao final.", String.Empty);
                    return;
                }

                pesquisa.MostrarResultado = chkMostrarResultado.Checked;
                pesquisa.Pergunta = txtPergunta.Text;
                pesquisa.Removido = false;

                new PesquisaOpiniaoBO(pesquisa).Salvar();

                base.MostrarMensagem("Sucesso", "Pesquisa de opinião gravada com sucesso.", String.Empty);

                LoadPagina();
                winPesquisa.Hide();
            }
            catch (Exception ex)
            {
                base.MostrarMensagem("Erro", "Erro ao salvar pesquisa de opinião.", String.Empty);
            }
        }
 private void PreencherCampos(DirectEventArgs e)
 {
     PesquisaSelecionada = new PesquisaOpiniaoBO().SelectById(JSON.Deserialize<List<PesquisaOpiniaoVO>>(e.ExtraParams["valores"])[0].Id);
     txtPergunta.Text = PesquisaSelecionada.Pergunta;
     txtDataInicial.Text = PesquisaSelecionada.DataInicial.ToString("dd/MM/yyyy");
     txtHoraInicial.Text = PesquisaSelecionada.DataInicial.ToString("HH:mm");
     txtDataFinal.Text = PesquisaSelecionada.DataFinal.ToString("dd/MM/yyyy");
     txtHoraFinal.Text = PesquisaSelecionada.DataFinal.ToString("HH:mm");
     chkMostrarResultado.Checked = PesquisaSelecionada.MostrarResultado;
     strRespostas.DataSource = PesquisaSelecionada.Respostas;
     strRespostas.DataBind();
     strUsuarios.DataSource = PesquisaSelecionada.Usuarios;
     strUsuarios.DataBind();
 }