void regForm_OnUserSaved(object sender, UserSavedEventArgs e)
        {
            var dataSource = dgvAfiliados.DataSource as BindingList <Afiliado>;
            var afiliado   = e.User as Afiliado;

            if (dataSource.Contains(afiliado))
            {
                dataSource.Remove(afiliado);
            }
            dataSource.Add(afiliado);
            dgvAfiliados.DataSource = new BindingList <Afiliado>(dataSource.OrderBy(x => x.DetallesPersona.Apellido + x.DetallesPersona.Nombre).ToList());
            dgvAfiliados.Refresh();
            MessageBox.Show("Se han guardado los datos del Afiliado " + e.User.ToString());
            var      familia        = _afiliadoManager.GetAllFromGrupoFamiliar(afiliado.grupoFamiliar);
            Afiliado conyugeCargado = new BindingList <Afiliado>(familia.Where(x => (x.grupoFamiliar == afiliado.grupoFamiliar && x.tipoAfiliado == 2)).ToList()).First();

            if (conyugeCargado == null && (afiliado.EstadoCivil == EstadoCivil.Casado || afiliado.EstadoCivil == EstadoCivil.Concubinato))
            {
                if (MessageBox.Show(string.Format("Desea agregar a su conyuge?"), "Agregar Conyuge", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    var regForm = new RegistroForm();
                    regForm.OnUserSaved += new EventHandler <UserSavedEventArgs>(regForm_OnUserSaved);
                    Afiliado conyuge = new Afiliado();
                    conyuge.CantHijos              = afiliado.CantHijos;
                    conyuge.EstadoCivil            = afiliado.EstadoCivil;
                    conyuge.grupoFamiliar          = afiliado.grupoFamiliar;
                    conyuge.tipoAfiliado           = 2;
                    conyuge.UserName               = (afiliado.grupoFamiliar + 2).ToString();
                    conyuge.DetallesPersona        = afiliado.DetallesPersona;
                    conyuge.DetallesPersona.Nombre = "";
                    conyuge.DetallesPersona.DNI    = 0;
                    regForm._conyuge               = afiliado;
                    regForm.rellenarAfiliado(afiliado);
                    ViewsManager.LoadModal(regForm);
                }
            }
            BindingList <Afiliado> hijos = new BindingList <Afiliado>(familia.Where(x => (x.grupoFamiliar == afiliado.grupoFamiliar && x.tipoAfiliado > 2)).ToList());

            if ((hijos.Count < afiliado.CantHijos))
            {
                if (MessageBox.Show(string.Format("No todos sus hijos parecen estar cargados, desea cargarlos?"), "Agregar Hijos", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    var regForm = new RegistroForm();
                    regForm.OnUserSaved += new EventHandler <UserSavedEventArgs>(regForm_OnUserSaved);
                    Afiliado hijo = new Afiliado();
                    hijo.CantHijos              = afiliado.CantHijos;
                    hijo.EstadoCivil            = EstadoCivil.Soltero;
                    hijo.grupoFamiliar          = afiliado.grupoFamiliar;
                    hijo.tipoAfiliado           = 2;
                    hijo.UserName               = (afiliado.grupoFamiliar + 2).ToString();
                    hijo.DetallesPersona        = afiliado.DetallesPersona;
                    hijo.DetallesPersona.Nombre = "";
                    hijo.DetallesPersona.DNI    = 0;
                    regForm._padre              = afiliado;
                    regForm.rellenarAfiliado(afiliado);
                    regForm._nroAfiliado = afiliado.CantHijos + 1;
                    ViewsManager.LoadModal(regForm);
                }
            }
        }
 private void verificar_Familiares(Afiliado afiliado)
 {
     if (afiliado.tipoAfiliado == 1 || afiliado.tipoAfiliado == 2)//Afiliado Principal
     {
         var familia = _afiliadoManager.GetAllFromGrupoFamiliar(afiliado.grupoFamiliar);
         int miembrosSegunRegistro = 1;                                      //El afiliado principal
         miembrosSegunRegistro = miembrosSegunRegistro + afiliado.CantHijos; //Sumo cantidad de hijos
         if (_afiliadoManager.correspondeConyuge(afiliado))                  //Sumo Conyuge
         {
             miembrosSegunRegistro++;
         }
         if (familia.Count < miembrosSegunRegistro)
         {
             if (_afiliadoManager.correspondeConyuge(afiliado) && !_afiliadoManager.conyugeFueCargado(familia))
             {
                 if (MessageBox.Show(string.Format("Desea agregar a su conyuge?"), "Agregar Conyuge", MessageBoxButtons.OKCancel) == DialogResult.OK)
                 {
                     var      regForm = new RegistroForm();
                     Afiliado conyuge = _afiliadoManager.RellenarDatosConyuge(afiliado);
                     regForm.esNuevoUsuario     = true;
                     regForm.perfilSeleccionado = "Afiliado";
                     regForm.OnUserSaved       += new EventHandler <UserSavedEventArgs>(regForm_OnConyugeSaved);
                     regForm.rellenarAfiliado(conyuge);
                     ViewsManager.LoadModal(regForm);
                 }
             }
             BindingList <Afiliado> hijosEnSistema = new BindingList <Afiliado>(familia.Where(x => (x.grupoFamiliar == afiliado.grupoFamiliar && x.tipoAfiliado > 2)).ToList());
             int cantidadHijosFaltantes            = afiliado.CantHijos - hijosEnSistema.Count;         //Los que ingreso en el campo menos los que estan ya cargados
             for (int i = hijosEnSistema.Count; i < cantidadHijosFaltantes + hijosEnSistema.Count; i++) //Verificar el for
             {
                 if (MessageBox.Show(string.Format(("Se registro que tiene {1} hijos, pero en el sistema hay {0} hijos cargados, desea cargarlos?"), i, afiliado.CantHijos), "Agregar Hijos", MessageBoxButtons.OKCancel) == DialogResult.OK)
                 {
                     var regForm = new RegistroForm();
                     regForm.OnUserSaved += new EventHandler <UserSavedEventArgs>(regForm_OnHijoSaved);
                     Afiliado hijo = _afiliadoManager.RellenarDatosHijo(afiliado);
                     regForm.perfilSeleccionado = "Afiliado";
                     regForm.rellenarAfiliado(hijo);
                     regForm.esNuevoUsuario = true;
                     ViewsManager.LoadModal(regForm);
                 }
             }
         }
         var dataSource = _afiliadoManager.buscarTodos();
         dgvAfiliados.DataSource = dataSource;
         dgvAfiliados.Refresh();
     }
 }