예제 #1
0
        private void btnAlterar_Click(object sender, EventArgs e)
        {
            if (lsvClientes.SelectedIndices.Count == 0)
            {
                MessageBox.Show("Selecione um cliente para ser alterado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else if (lsvClientes.SelectedIndices.Count > 1)
            {
                MessageBox.Show("Selecione somente um cliente para ser alterado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            using (var frmLogin = new FormLogin())
            {
                frmLogin.ShowDialog();
                if (!frmLogin.Logado)
                {
                    return;
                }
            }

            int idCliente = clientes[lsvClientes.SelectedIndices[0]].Id;

            using (var cliente = new Cliente())
            {
                using (var conn = new Connection())
                {
                    if (!cliente.SetById(idCliente, conn, null))
                    {
                        MessageBox.Show($"Não foi possível encontrar o cliente com id `{idCliente}`", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        CarregarClientes();
                        return;
                    }
                }

                using (var frmDadosPessoais = new FormDadosPessoaisCliente(cliente))
                {
                    frmDadosPessoais.btnAlterarPesquisa.Visible = true;

                    if (frmDadosPessoais.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    frmDadosPessoais.SetDadosInModel(cliente);
                }

                using (var conn = new Connection())
                {
                    cliente.Salvar(false, conn, null);
                    MessageBox.Show("Informações do cliente salva com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    CarregarClientes();
                }
            }
        }
예제 #2
0
        private void btnCadastrar_Click(object sender, EventArgs e)
        {
            try
            {
                using (var frmDadosPessoais = new FormDadosPessoaisCliente())
                    using (var frmPesquisa = new FormPesquisa(TipoPergunta.Cliente, PesquisaControl.TipoFonte.Grande, false))
                        using (var cliente = new Cliente())
                        {
                            frmDadosPessoais.btnOk.Text   = "Avançar";
                            frmPesquisa.btnVoltar.Visible = true;

                            PassoCadastro passo = PassoCadastro.DadosPessoais;
                            bool          cadastroFinalizado = false;

                            while (!cadastroFinalizado)
                            {
                                switch (passo)
                                {
                                case PassoCadastro.DadosPessoais:
                                    if (frmDadosPessoais.ShowDialog() == DialogResult.OK)
                                    {
                                        passo = PassoCadastro.Pesquisa;
                                    }
                                    else
                                    {
                                        return;
                                    }
                                    break;

                                case PassoCadastro.Pesquisa:
                                    DialogResult dialogResult = frmPesquisa.ShowDialog();

                                    if (dialogResult == DialogResult.OK)
                                    {
                                        cadastroFinalizado = true;
                                    }
                                    else if (dialogResult == DialogResult.Retry)
                                    {
                                        passo = PassoCadastro.DadosPessoais;
                                    }
                                    else
                                    {
                                        return;
                                    }
                                    break;
                                }
                            }

                            using (var conn = new Connection())
                                using (SQLiteTransaction transaction = conn.BeginTransaction())
                                {
                                    try
                                    {
                                        frmDadosPessoais.SetDadosInModel(cliente);
                                        cliente.Salvar(false, conn, transaction);

                                        Resposta.SalvarRespostas(TipoPergunta.Cliente, cliente.Id, frmPesquisa.Respostas, conn, transaction);

                                        transaction.Commit();

                                        CarregarClientes();
                                    }
                                    catch (Exception erro)
                                    {
                                        MessageBox.Show("Ocorreu um erro ao salvar o cliente:\n" + erro.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        transaction.Rollback();
                                    }
                                }
                        }
            } catch (PerguntasNotFoundException erro)
            {
                MessageBox.Show(erro.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }