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(); } }