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