Пример #1
0
        private async Task <bool> ValidarDatosObligatoriosPersona(Entidades.Persona persona)
        {
            Framework.Validaciones.Validaciones.Validar <Entidades.Persona>(persona);

            DatosInvalidosException datosInvalidos = new DatosInvalidosException();

            if (await PersonaRepositorio.ObtenerUnoAsync(p => p.IdPais == persona.IdPais && p.IdTipoDocumento == persona.IdTipoDocumento && p.IdSexo == persona.IdSexo && p.NumeroDocumento == persona.NumeroDocumento && p.Id != persona.Id) != null)
            {
                datosInvalidos.Data.Add("Persona Existente", "La persona ya se encuentra registrada.");
            }

            if (persona.PersonaContacto.Count == 0)
            {
                datosInvalidos.Data.Add("Persona sin contactos", "Debe indicar al menos un tipo de contacto");
            }

            if (persona.FechaNacimiento.AddYears(18) > DateTime.Now)
            {
                datosInvalidos.Data.Add("Persona menor de edad", "La persona debe ser mayor a 18 años.");
            }

            if (datosInvalidos.Data.Count == 0)
            {
                return(true);
            }
            else
            {
                throw datosInvalidos;
            }
        }
Пример #2
0
        public async Task <DtoPersonaRelacion> GuardarRelacionPadreAsync(int idPersona1, int idPersona2)
        {
            if (idPersona1 == idPersona2)
            {
                DatosInvalidosException datosInvalidos = new DatosInvalidosException();
                datosInvalidos.Data.Add("Relacion Invalida", "Una persona no puede ser padre de si mismo");
                throw datosInvalidos;
            }

            PersonaRelacion personaRelacion = await PersonaRelacionRepositorio.ObtenerUnoAsync(r => (r.IdPersona1 == idPersona1 && r.IdPersona2 == idPersona2) || (r.IdPersona1 == idPersona2 && r.IdPersona2 == idPersona1));

            if (personaRelacion == null)
            {
                personaRelacion = await PersonaRelacionRepositorio.InsertarAsync(new PersonaRelacion()
                {
                    IdPersona1 = idPersona1, IdPersona2 = idPersona2, IdTipoRelacion = (int)Entidades.Enumeraciones.TipoRelacionEnum.Padre
                });
            }
            else
            {
                DatosInvalidosException datosInvalidos = new DatosInvalidosException();
                datosInvalidos.Data.Add("Relacion Existente", "Ya existe una relacion entre las personas indicadas.");
                throw datosInvalidos;
            }

            return(new DtoPersonaRelacion()
            {
                IdPersona1 = idPersona1,
                IdPersona2 = idPersona2,
                Relacion = TipoRelacionEnum.Padre.ToString()
            });
        }
Пример #3
0
        public static Boolean Validar <TEntity>(TEntity Entidad) where TEntity : class
        {
            DatosInvalidosException datosInvalidos = null;

            foreach (var prop in typeof(TEntity).GetProperties())
            {
                object[] attrs = prop.GetCustomAttributes(true);
                if (attrs == null || attrs.Length == 0)
                {
                    continue;
                }

                foreach (Attribute attr in attrs)
                {
                    if (attr is RequiredAttribute)
                    {
                        if ((attr as RequiredAttribute).IsValid(prop.GetValue(Entidad)) == false)
                        {
                            if (datosInvalidos == null)
                            {
                                datosInvalidos = new DatosInvalidosException();
                            }
                            datosInvalidos.Data.Add(prop.Name, (attr as RequiredAttribute).ErrorMessage ?? String.Format("El campo {0} es obligatorio", prop.Name));
                        }
                    }
                    else if (attr is MinLengthAttribute)
                    {
                        if ((attr as MinLengthAttribute).IsValid(prop.GetValue(Entidad)) == false)
                        {
                            if (datosInvalidos == null)
                            {
                                datosInvalidos = new DatosInvalidosException();
                            }
                            datosInvalidos.Data.Add(prop.Name, (attr as MinLengthAttribute).ErrorMessage ?? String.Format("El campo {0} debe tener una longitud mínima de '{1}'.", prop.Name, (attr as MinLengthAttribute).Length));
                        }
                    }
                    else if (attr is MaxLengthAttribute)
                    {
                        if ((attr as MaxLengthAttribute).IsValid(prop.GetValue(Entidad)) == false)
                        {
                            if (datosInvalidos == null)
                            {
                                datosInvalidos = new DatosInvalidosException();
                            }
                            datosInvalidos.Data.Add(prop.Name, (attr as MaxLengthAttribute).ErrorMessage ?? String.Format("El campo {0} debe tener una longitud máxima de '{1}'.", prop.Name, (attr as MaxLengthAttribute).Length));
                        }
                    }
                    else if (attr is RangeAttribute)
                    {
                        if ((attr as RangeAttribute).IsValid(prop.GetValue(Entidad)) == false)
                        {
                            if (datosInvalidos == null)
                            {
                                datosInvalidos = new DatosInvalidosException();
                            }
                            datosInvalidos.Data.Add(prop.Name, (attr as RangeAttribute).ErrorMessage ?? String.Format("El campo {0} debe estar en el rango {1} - {2}.", prop.Name, (attr as RangeAttribute).Minimum, (attr as RangeAttribute).Maximum));
                        }
                    }
                }
            }

            if (datosInvalidos == null)
            {
                return(true);
            }
            else
            {
                throw datosInvalidos;
            }
        }