예제 #1
0
        private void button_Guardar_Click(object sender, EventArgs e)
        {
            // Guarda en variables todos los campos de entrada
            String nombre   = textBox_Nombre.Text;
            String apellido = textBox_Apellido.Text;

            String   numeroDeDocumento = textBox_DNI.Text;
            DateTime fechaDeNacimiento;

            DateTime.TryParse(textBox_FechaDeNacimiento.Text, out fechaDeNacimiento);
            String  mail         = textBox_Mail.Text;
            String  telefono     = textBox_Telefono.Text;
            String  direccion    = textBox_Direccion.Text;
            String  codigoPostal = textBox_CodigoPostal.Text;
            Boolean activo       = checkBox_Habilitado.Checked; //La variable activo que esta en el checkbox es para saber si esta habilitado a nivel usuario

            Boolean pudoModificar;



            // Update cliente
            try
            {
                Clientes cliente = new Clientes();

                cliente.SetNombre(nombre);
                cliente.SetApellido(apellido);
                cliente.SetDNI(numeroDeDocumento);

                cliente.SetFechaDeNacimiento(fechaDeNacimiento);
                cliente.SetMail(mail);
                cliente.SetTelefono(telefono);
                cliente.SetDireccion(direccion);

                cliente.SetCodigoPostal(codigoPostal);
                cliente.SetActivo(true);


                mapper.ActualizarEstadoUsuario(idUsuario, activo);

                pudoModificar = mapper.Modificar(idCliente, cliente);
                if (pudoModificar)
                {
                    MessageBox.Show("El cliente se modifico correctamente");
                    String usernameIgualAlDNI = Convert.ToString(mapper.SelectFromWhere("usuario_name", "Usuario", "usuario_id", this.idUsuario));
                    if (dniViejo != numeroDeDocumento && dniViejo == usernameIgualAlDNI)
                    {
                        mapper.ActualizarUsuarioyPassword(this.idUsuario, numeroDeDocumento, numeroDeDocumento);//solo le cambio usuario y contraseña cuando se modifica el dni de alguno de los clientes migrados ,cualquier cliente agregado a la migracion no
                        MessageBox.Show("Contraseña modificada", "Actulizacion Contraseña", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (CampoVacioException exception)
            {
                MessageBox.Show("Falta completar campo: " + exception.Message);
                return;
            }
            catch (FormatoInvalidoException exception)
            {
                MessageBox.Show("Datos mal ingresados en: " + exception.Message);
                return;
            }
            catch (ClienteYaExisteException)
            {
                MessageBox.Show("El documento ya existe");
                return;
            }
            catch (TelefonoYaExisteException)
            {
                MessageBox.Show("El telefono ya existe");
                return;
            }
            catch (FechaInvalidaException)
            {
                MessageBox.Show("Fecha no valida");
                return;
            }
            catch (SqlException error)
            {
                switch (error.Number)
                {
                case 2627: MessageBox.Show("El DNI o el Telefono ya se encuentra registrado", "DNI Duplicado", MessageBoxButtons.OK, MessageBoxIcon.Error);     //Violacion de restriccion UNIQUE
                    return;

                case 8114: MessageBox.Show("Error de datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);     //ERROR de conversion de datos
                    return;
                }
            }

            this.Close();
        }