private async void btnModificar_Click(object sender, EventArgs e)
        {
            lbId.Visible      = true;
            txtId.Visible     = true;
            lbEstado.Visible  = true;
            txtEstado.Visible = true;
            btnAplicar.Text   = "Aplicar";
            PrepararComboboxes();
            Departamento depto;

            do
            {
                depto = await ClienteHttp.Peticion.Get <Departamento>(tablaDeptos.SelectedRows[0].Cells[0].Value.ToString());
            } while (depto == null);
            txtId.Text               = depto.Id_depto.ToString();
            txtNombre.Text           = depto.Nombre;
            txtDireccion.Text        = depto.Direccion;
            cbLocalidad.SelectedItem = Tools.BuscarEnLista((List <Localidad>)cbLocalidad.DataSource, "Id_localidad", depto.Id_localidad);
            txtMCuadrados.Text       = depto.Mts_cuadrados.ToString();
            txtHabitaciones.Text     = depto.Habitaciones.ToString();
            txtBanos.Text            = depto.Banos.ToString();
            txtArriendo.Text         = depto.Arriendo.ToString();
            txtDividendo.Text        = depto.Dividendo.ToString();
            txtContribuciones.Text   = depto.Contribuciones.ToString();
            txtEstado.Text           = Repositorios.Buscar(Main.Repos.EstadoDeptos, "Id_estado", depto.Id_estado).Nombre;
            Desplegar();
            Main.EstadoTrabajo = EstadoTrabajo.Modificando;
        }
        private async void CargarDatos(object sender = null, EventArgs e = null)
        {
            try{
                Main.Do();
                var lista = await ClienteHttp.Peticion.GetList <Departamento>();

                if (primeraCarga)
                {
                    tablaDeptos.Columns.Add("id_depto", "Identificador");
                    tablaDeptos.Columns.Add("nombre", "Nombre");
                    tablaDeptos.Columns.Add("direccion", "Dirección");
                    tablaDeptos.Columns.Add("arriendo", "Arriendo");
                    tablaDeptos.Columns.Add("mts", "Metros cuadrados");
                    tablaDeptos.Columns.Add("habitaciones", "Habitaciones");
                    tablaDeptos.Columns.Add("banos", "Baños");
                    tablaDeptos.Columns.Add("localidad", "Localidad");
                    tablaDeptos.Columns.Add("estado", "Estado");

                    tablaDeptos.Columns["id_depto"].Width     = 75;
                    tablaDeptos.Columns["nombre"].Width       = 150;
                    tablaDeptos.Columns["direccion"].Width    = 160;
                    tablaDeptos.Columns["arriendo"].Width     = 55;
                    tablaDeptos.Columns["mts"].Width          = 100;
                    tablaDeptos.Columns["habitaciones"].Width = 75;
                    tablaDeptos.Columns["banos"].Width        = 45;
                    tablaDeptos.Columns["localidad"].Width    = 100;
                    tablaDeptos.Columns["estado"].Width       = 110;
                }
                else
                {
                    tablaDeptos.Rows.Clear();
                }
                foreach (var i in lista)
                {
                    tablaDeptos.Rows.Add(i.Id_depto, i.Nombre, i.Direccion, "$" + i.Arriendo, i.Mts_cuadrados, i.Habitaciones, i.Banos, Repositorios.Buscar(Main.Repos.Localidades, "Id_localidad", i.Id_localidad).Nombre, Repositorios.Buscar(Main.Repos.EstadoDeptos, "Id_estado", i.Id_estado).Nombre);
                }
                if (primeraCarga)
                {
                    tablaDeptos.MultiSelect      = false;
                    tablaDeptos.Rows[0].Selected = true;
                    primeraCarga = false;
                }
                Main.Undo();
            }
            catch (Exception ex)
            {
                if (intent > 1)
                {
                    Main.Undo();
                    intent = 0;
                    return;
                }
                intent++;
                CargarDatos();
            }
        }
        /* BOTONES*/

        private async void BotonesModificar(object sender, EventArgs e)
        {
            /*try
             * {*/
            /* CAMBIA SEGUN PAGINA*/
            switch (actual)
            {
            case Logistica.Inventario:
                Articulo a;
                do
                {
                    a = await ClienteHttp.Peticion.Get <Articulo>(tablaArticulo.SelectedRows[0].Cells[0].Value.ToString(), SesionManager.Token);
                } while (a == null);
                lbIdI.Visible   = true;
                txtIdI.Visible  = true;
                txtIdI.Text     = a.Id_articulo.ToString();
                txtNombreI.Text = a.Nombre;
                txtValorI.Text  = a.Valor.ToString();
                break;

            case Logistica.Localidades:
                Localidad l;
                do
                {
                    l = await ClienteHttp.Peticion.Get <Localidad>(tablaLocalidad.SelectedRows[0].Cells[0].Value.ToString());
                } while (l == null);
                lbIdL.Visible   = true;
                txtIdL.Visible  = true;
                txtIdL.Text     = l.Id_localidad.ToString();
                txtNombreL.Text = l.Nombre;
                break;

            case Logistica.Vehiculos:
                Vehiculo v;
                do
                {
                    v = await ClienteHttp.Peticion.Get <Vehiculo>(tablaVehiculo.SelectedRows[0].Cells[0].Value.ToString(), SesionManager.Token);
                } while (v == null);
                txtPatente.Text    = v.Patente;
                txtPatente.Enabled = false;
                txtMarcaV.Text     = v.Marca;
                txtModeloV.Text    = v.Modelo;
                break;

            case Logistica.Choferes:
                PersonaChofer pc;
                do
                {
                    pc = await ClienteHttp.Peticion.Get <PersonaChofer>(tablaChofer.SelectedRows[0].Cells[0].Value.ToString(), SesionManager.Token);
                } while (pc == null);
                PrepararComboboxes();
                lbIdC.Visible         = true;
                txtIdC.Visible        = true;
                txtIdC.Text           = pc.Chofer.Id_chofer.ToString();
                txtRut.Text           = pc.Persona.Rut;
                txtNombres.Text       = pc.Persona.Nombres;
                txtApellidos.Text     = pc.Persona.Apellidos;
                dtNacimiento.Value    = pc.Persona.Nacimiento;
                cbGenero.SelectedItem = Repositorios.Buscar((List <Genero>)cbGenero.DataSource, "Id_genero", pc.Persona.Id_genero);
                txtEmail.Text         = pc.Persona.Email;
                txtTelefono.Text      = pc.Persona.Telefono.ToString();
                txtDireccion.Text     = pc.Persona.Direccion;
                cbRegion.SelectedItem = Repositorios.Buscar((List <ProxyRegion>)cbRegion.DataSource, "Region", pc.Persona.Region);
                cbRegion_SelectionChangeCommitted(cbRegion);
                cbComuna.SelectedItem = Repositorios.Buscar((List <Comuna>)cbComuna.DataSource, "Nombre", pc.Persona.Comuna);
                break;
            }    /*
                  * }
                  * catch(Exception ex){
                  * return;
                  * }*/
            Main.EstadoTrabajo = EstadoTrabajo.Modificando;
            Desplegar();
        }
        private async void PrepararModificar()
        {
            Main.EstadoTrabajo = EstadoTrabajo.Modificando;
            usuarioActual      = null;
            do
            {
                usuarioActual = await ClienteHttp.Peticion.Get <PersonaUsuario>(tablaUsuarios.SelectedRows[0].Cells[0].Value.ToString(), SesionManager.Token);
            } while (usuarioActual == null);
            lbEstado.Visible  = true;
            chkActivo.Visible = true;
            btnAplicar.Text   = "Aplicar";
            chkClave.Checked  = false;
            claveVisible      = false;
            btnOjo.Image      = imgCerrado;
            pClave.Visible    = true;
            chkClave.Visible  = true;
            pClave.Enabled    = false;
            PrepararComboboxes();
            //Se preparan los campos
            var u = usuarioActual.Usuario;
            var p = usuarioActual.Persona;

            txtClave.Text       = "";
            txtUsername.Text    = u.Username;
            txtUsername.Enabled = false;
            chkActivo.Checked   = u.Activo == '1';
            txtFrecuente.Text   = (u.Frecuente == '1') ? "Si" : "No";
            if (u.Id_rol == 5)
            {
                txtFrecuente.Visible = true;
                lbFrecuente.Visible  = true;
            }
            else
            {
                txtFrecuente.Visible = false;
                lbFrecuente.Visible  = false;
            }
            txtRut.Text       = p.Rut;
            txtRut.Enabled    = false;
            txtNombres.Text   = p.Nombres;
            txtApellidos.Text = p.Apellidos;
            try
            {
                dtNacimiento.Value = p.Nacimiento;
            }
            catch (Exception e)
            {
                dtNacimiento.Value = dtNacimiento.MaxDate;
            }
            txtEmail.Text         = p.Email;
            txtTelefono.Text      = p.Telefono.ToString();
            txtDireccion.Text     = p.Direccion;
            cbRol.SelectedItem    = Repositorios.Buscar((List <Rol>)cbRol.DataSource, "Id_rol", u.Id_rol);
            cbRegion.SelectedItem = Repositorios.Buscar((List <ProxyRegion>)cbRegion.DataSource, "Region", p.Region);
            cbRegion_SelectionChangeCommitted(cbRegion);
            cbComuna.SelectedItem = Repositorios.Buscar((List <Comuna>)cbComuna.DataSource, "Nombre", p.Comuna);
            cbGenero.SelectedItem = Repositorios.Buscar((List <Genero>)cbGenero.DataSource, "Id_genero", p.Id_genero);
            cbRegion.Refresh();
            cbComuna.Refresh();
            cbGenero.Refresh();
            cbRol.Refresh();
        }