Ejemplo n.º 1
0
        public UsuarioSearchingFields GetSearchingField(string nombre, string apellido1, string dni, string email, string rolId)
        {
            UsuarioSearchingFields output = new UsuarioSearchingFields
            {
                SearchingParam = UsuarioSearchingParam.empty,
                SearchingRol   = RolParam.allRoles
            };

            if (rolId.IsNullOrWhiteSpace() == false && rolId != "0")
            {
                output.SearchingRol      = RolParam.rolId;
                output.SearchingValueRol = int.Parse(rolId);
            }


            if (nombre.IsNullOrWhiteSpace() == false)
            {
                output.SearchingParam = UsuarioSearchingParam.nombre;
                output.SearchingValue.Add(nombre.Trim().ToUpperInvariant());
            }
            if (apellido1.IsNullOrWhiteSpace() == false)
            {
                output.SearchingParam = UsuarioSearchingParam.apellido1;
                output.SearchingValue.Add(apellido1.Trim().ToUpperInvariant());
            }
            if (nombre.IsNullOrWhiteSpace() == false && apellido1.IsNullOrWhiteSpace() == false)
            {
                output.SearchingParam = UsuarioSearchingParam.nombreAndApellido1;
            }
            if (dni.IsNullOrWhiteSpace() == false)
            {
                output.SearchingParam = UsuarioSearchingParam.dni;
                output.SearchingValue.Add(dni.Trim().ToUpperInvariant());
            }
            if (email.IsNullOrWhiteSpace() == false)
            {
                output.SearchingParam = UsuarioSearchingParam.email;
                output.SearchingValue.Add(email.Trim().ToUpperInvariant());
            }
            return(output);
        }
Ejemplo n.º 2
0
        public List <Usuario> SearchUsuarios(UsuarioSearchingFields searchingFields)
        {
            var output = new List <Usuario>();

            // Rol (resto de campos vacíos).
            if (searchingFields.SearchingParam == UsuarioSearchingParam.empty)
            {
                if (searchingFields.SearchingRol == RolParam.allRoles)
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRoles().ToList();
                }
                else
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.rolId == searchingFields.SearchingValueRol).ToList();
                }
            }

            // Nombre y 1er Apellido + Rol.
            if (searchingFields.SearchingParam == UsuarioSearchingParam.nombreAndApellido1)
            {
                var nombre    = searchingFields.SearchingValue[0];
                var apellido1 = searchingFields.SearchingValue[1];

                if (searchingFields.SearchingRol == RolParam.allRoles)
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.nombreUsuario == nombre && c.apellido1Usuario == apellido1).ToList();
                }
                else
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.nombreUsuario == nombre && c.apellido1Usuario == apellido1 && c.rolId == searchingFields.SearchingValueRol).ToList();
                }
            }
            // Nombre + Rol.
            if (searchingFields.SearchingParam == UsuarioSearchingParam.nombre)
            {
                var nombre = searchingFields.SearchingValue[0];

                if (searchingFields.SearchingRol == RolParam.allRoles)
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.nombreUsuario == nombre).ToList();
                }
                else
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.nombreUsuario == nombre && c.rolId == searchingFields.SearchingValueRol).ToList();
                }
            }
            // Apellido + Rol.
            if (searchingFields.SearchingParam == UsuarioSearchingParam.apellido1)
            {
                var apellido1 = searchingFields.SearchingValue[0];

                if (searchingFields.SearchingRol == RolParam.allRoles)
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.apellido1Usuario == apellido1).ToList();
                }
                else
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.apellido1Usuario == apellido1 && c.rolId == searchingFields.SearchingValueRol).ToList();
                }
            }
            // NIF/NIE.
            if (searchingFields.SearchingParam == UsuarioSearchingParam.dni)
            {
                var dni = searchingFields.SearchingValue[0];

                if (searchingFields.SearchingRol == RolParam.allRoles)
                {
                    var usuariosCoincidentes = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.dniUsuario == dni).ToList();

                    // Si no hay coincidencia en cliente activo, busca en clientes no activos
                    if (usuariosCoincidentes.Any() == false)
                    {
                        usuariosCoincidentes = unitOfWork.Usuario.GetUsuariosNoActivosWithRolesWhere(c => c.dniUsuario == dni).ToList();
                    }
                    output = usuariosCoincidentes;
                }
                else
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.dniUsuario == dni && c.rolId == searchingFields.SearchingValueRol).ToList();
                }
            }
            // Email.
            if (searchingFields.SearchingParam == UsuarioSearchingParam.email)
            {
                var email = searchingFields.SearchingValue[0];

                if (searchingFields.SearchingRol == RolParam.allRoles)
                {
                    var usuariosCoincidentes = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.emailUsuario == email);
                    if (usuariosCoincidentes.Any() == false)
                    {
                        usuariosCoincidentes = unitOfWork.Usuario.GetUsuariosNoActivosWithRolesWhere(c => c.emailUsuario == email).ToList();
                    }
                    output = usuariosCoincidentes.ToList();
                }
                else
                {
                    output = unitOfWork.Usuario.GetUsuariosActivosWithRolesWhere(c => c.emailUsuario == email && c.rolId == searchingFields.SearchingValueRol).ToList();
                }
            }

            return(output);
        }