private void check_connection()
        {
            if (Fundraising_PTDM.MyConnection.OpenConnection() == true)
            {
                bool validconnect = Fundraising_PTDM.MyConnection.IsConnected();
                if (!validconnect)
                {
                    if (MessageBox.Show("No se pudo establecer la conexión con el servidor de la base de datos... \nDesea configurar la conexión... ?", "Conexión con servidor de datos", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.OK)
                    {
                        config_connection();
                    }
                    else
                    {
                        Lpass_usu = false;
                        Close();
                    }
                }
                else
                {
                    // se establece los parametros para "xpo.default.sesion" que es la sesion usada para todas las conexiones a las tablas entre (Collection, Object Persist, tablas sql).
                    XpoDefault.Session.LockingOption = LockingOption.Optimistic;
                    XpoDefault.Session.OptimisticLockingReadBehavior = OptimisticLockingReadBehavior.MergeCollisionThrowException;
                    //XpoDefault.Session.OptimisticLockingReadBehavior = OptimisticLockingReadBehavior.ThrowException;
                    XpoDefault.Session.TrackPropertiesModifications = true;

                    //XPBaseCollection.EnableObjectChangedNotificationsWhileEditing = true;

                    //XPLiteObject.AutoSaveOnEndEdit = false;
                    XPBaseObject.AutoSaveOnEndEdit = true;
                    //

                    // se crea un usuario administrativo por primera ves //
                    usuario = new DevExpress.Xpo.XPCollection <Fundraising_PTDM.FUNDRAISING_PT.Usuarios>(DevExpress.Xpo.XpoDefault.Session);
                    if (usuario == null || usuario.Count() <= 0)
                    {
                        usuario.Add(new Fundraising_PTDM.FUNDRAISING_PT.Usuarios(DevExpress.Xpo.XpoDefault.Session));
                        usuario[0].login   = "******";
                        usuario[0].clave   = "1";
                        usuario[0].usuario = "POS&TOUCH Administrator";
                        usuario[0].tipo    = 1;
                        usuario[0].status  = 1;
                        usuario[0].Save();
                    }
                    //
                    // se crea una sucursal unica por primera ves //
                    sucursal = new DevExpress.Xpo.XPCollection <Fundraising_PTDM.FUNDRAISING_PT.Sucursales>(DevExpress.Xpo.XpoDefault.Session);
                    if (sucursal == null || sucursal.Count() <= 0)
                    {
                        l_new_sucursal = true;
                        sucursal.Add(new Fundraising_PTDM.FUNDRAISING_PT.Sucursales(DevExpress.Xpo.XpoDefault.Session));
                        sucursal[0].codigo   = 9999999;
                        sucursal[0].nombre   = "Fundraising Sucursal Unica";
                        sucursal[0].logotipo = "";
                        sucursal[0].select   = true;
                        sucursal[0].status   = 1;
                        sucursal[0].Save();
                        //
                        Fundraising_PT.Properties.Settings.Default.sucursal_oid    = sucursal[0].oid;
                        Fundraising_PT.Properties.Settings.Default.sucursal        = 9999999;
                        Fundraising_PT.Properties.Settings.Default.nombre_sucursal = "Fundraising Sucursal Unica";
                        Fundraising_PT.Properties.Settings.Default.logotipo        = "";
                        Fundraising_PT.Properties.Settings.Default.sucursal_filter = string.Format("sucursal = {0}", 9999999);
                        Fundraising_PT.Properties.Settings.Default.Save();
                        //
                    }
                    //
                    // se crea un registro por primera ves, con la informacion basica de configuracion //
                    configuracion = new DevExpress.Xpo.XPCollection <Fundraising_PTDM.FUNDRAISING_PT.Configuracion>(DevExpress.Xpo.XpoDefault.Session);
                    if (configuracion == null || configuracion.Count() <= 0)
                    {
                        //sucursal = new DevExpress.Xpo.XPCollection<Fundraising_PTDM.FUNDRAISING_PT.Sucursales>(DevExpress.Xpo.XpoDefault.Session, (new OperandProperty("status") == new OperandValue(1) & new OperandProperty("select") == new OperandValue(true)), (new DevExpress.Xpo.SortProperty("codigo", DevExpress.Xpo.DB.SortingDirection.Ascending)));
                        configuracion.Add(new Fundraising_PTDM.FUNDRAISING_PT.Configuracion(DevExpress.Xpo.XpoDefault.Session));
                        configuracion[0].activa_audio    = 0;
                        configuracion[0].time_new_sesion = 0;
                        //configuracion[0].sucursal = (sucursal == null || sucursal.Count() <= 0 ? null : sucursal[0]);
                        configuracion[0].Save();
                        //
                    }
                    else
                    {
                        //if (l_new_sucursal)
                        //{
                        //    sucursal = new DevExpress.Xpo.XPCollection<Fundraising_PTDM.FUNDRAISING_PT.Sucursales>(DevExpress.Xpo.XpoDefault.Session, (new OperandProperty("status") == new OperandValue(1) & new OperandProperty("select") == new OperandValue(true)), (new DevExpress.Xpo.SortProperty("codigo", DevExpress.Xpo.DB.SortingDirection.Ascending)));
                        //    configuracion[0].sucursal = (sucursal == null || sucursal.Count() <= 0 ? null : sucursal[0]);
                        //    configuracion[0].Save();
                        //}
                    }
                    //
                    this.textBox_login.Focus();
                }
            }
            else
            {
                if (MessageBox.Show("No se pudo establecer la conexión con el servidor de la base de datos... \nDesea configurar la conexión... ?", "Conexión con servidor de datos", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.OK)
                {
                    config_connection();
                }
                else
                {
                    Lpass_usu = false;
                    Close();
                }
            }
        }