/// <summary>
        /// Guarda el Beneficiario en la base de datos
        /// </summary>
        /// <returns>Retorna True si se guardó correctamente </returns>
        public bool NuevoBeneficiario()
        {
            bool r = false;

            try
            {
                if (!existeBeneficiario(this.Documento))
                {
                    beneficiario f = new beneficiario();

                    f.direccion = this._direccion;
                    f.documento = this._documento;
                    f.nombre    = this._nombre;
                    f.telefono  = this._telefono;
                    f.cuit_cuil = this._cuit_cuil;
                    f.fecha_nac = this._fecha_nac;
                    f.id_barrio = this._barrio.IdBarrio;

                    ctx.beneficiarios.Add(f);
                    ctx.SaveChanges();
                    _id_beneficiario = f.id_beneficiario;


                    r = true;

                    if (r)
                    {
                        // Cargo los beneficios
                        foreach (BeneficioBeneficiarioClass ben in _beneficios)
                        {
                            beneficiario_beneficio bb = new beneficiario_beneficio();
                            bb.id_beneficiario = _id_beneficiario;
                            bb.id_beneficio    = ben.Id_beneficio;
                            bb.fechadesde      = ben.Fecha_asignacion;

                            ctx.beneficiario_beneficio.Add(bb);
                            ctx.SaveChanges();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Ya existe un beneficiario con ese Documento!");
                    r = false;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error de datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                r = false;
            }

            return(r);
        }
        public bool Modificar()
        {
            bool r = false;

            try
            {
                var cur = from b in ctx.beneficiarios
                          where b.id_beneficiario == _id_beneficiario
                          select b;


                var f = cur.First();
                f.direccion = _direccion;
                f.documento = _documento;
                f.nombre    = _nombre;
                f.telefono  = _telefono;
                f.cuit_cuil = _cuit_cuil;
                f.fecha_nac = _fecha_nac;
                f.id_barrio = _barrio.IdBarrio;

                ctx.SaveChanges();
                r = true;

                if (r)
                {
                    var cur2 = from bb in ctx.beneficiario_beneficio
                               where bb.id_beneficiario == _id_beneficiario
                               select bb;


                    List <beneficiario_beneficio> listaGuardada = new List <beneficiario_beneficio>();
                    List <beneficiario_beneficio> listaAdd      = new List <beneficiario_beneficio>();
                    List <beneficiario_beneficio> listaBorrar   = new List <beneficiario_beneficio>();
                    foreach (beneficiario_beneficio bb in cur2)
                    {
                        // listaGuardada.Add(BeneficiarioClass.BuscarBeneficiario((bg.id_beneficiario).ToString(), CriterioBusqueda.Busqueda_ID));
                        listaGuardada.Add(bb);
                    }

                    // Si se guardó la descripción guardo los beneficios
                    foreach (BeneficioBeneficiarioClass be in _beneficios)
                    {
                        if (listaGuardada.Exists(x => x.id_beneficio == be.Id_beneficio))
                        {
                            // No hago nada;
                        }
                        else
                        {
                            // Guardo en la lista para agregar
                            // listaAdd.Add(b);
                            beneficiario_beneficio bb = new beneficiario_beneficio();
                            bb.id_beneficio    = be.Id_beneficio;
                            bb.id_beneficiario = be.Id_beneficiario;
                            bb.fechadesde      = be.Fecha_asignacion;

                            listaAdd.Add(bb);
                            // ctx.beneficiario_grupo.Attach(bg);
                            ctx.beneficiario_beneficio.Add(bb);
                            ctx.SaveChanges();
                        }
                    }


                    foreach (beneficiario_beneficio bb in listaGuardada)
                    {
                        if (_beneficios.Exists(x => x.Id_beneficio == bb.id_beneficio))
                        {
                            // NO hago nada
                        }
                        else
                        {
                            //listaBorrar.Add(b);
                            listaBorrar.Add(bb);
                            ctx.SaveChanges();

                            //ctx.beneficiario_grupo.Remove(bg);
                        }
                    }


                    /*
                     * foreach (beneficiario_grupo bg in listaBorrar)
                     * {
                     *
                     *  if (eliminarBeneficiarioGrupo(bg.id_beneficiario, bg.id_gupo))
                     *  {
                     *
                     *  }
                     *  else
                     *  {
                     *      r = false;
                     *  }
                     *
                     *
                     * }
                     * ctx.SaveChanges();
                     */
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error al modificar el beneficiario", MessageBoxButtons.OK, MessageBoxIcon.Error);
                r = false;
            }



            return(r);
        }