```
public class Employee
{
    public int ID { get; set; }
    public string Name { get; set; }
}

public class LoginAudit
{
    public int ID { get; set; }
    public DateTime LoginTime { get; set; }
}

static void Main(string[] args)
{

    List<Employee> AllEmployees = new List<Employee>() 
    {
        new Employee() { ID = 1, Name = "John"},
        new Employee() { ID = 2, Name = "Pete"},
        new Employee() { ID = 3, Name = "Sue"},
        new Employee() { ID = 4, Name = "Chris"},
        new Employee() { ID = 5, Name = "Kate"},
        new Employee() { ID = 6, Name = "Smith"},
        new Employee() { ID = 7, Name = "Bil"},
        new Employee() { ID = 8, Name = "Shan"},
        new Employee() { ID = 9, Name = "Joe"},
        new Employee() { ID = 10, Name = "Lure"}
    };

    List<int> SomeEmployeesIDs = new List<int>() 
    {
        1, 2, 5, 6, 10
    };

    List<LoginAudit> EmployeeLogins = new List<LoginAudit>() 
    {
        new LoginAudit() { ID = 1, LoginTime = new DateTime(2015,1,11)},
        new LoginAudit() { ID = 5, LoginTime = new DateTime(2015,2,2)}
    };

}

```

I want to select everything from employees from **AllEmployees** meeting following conditions.  

1. Have ID in **SomeEmployeesIDs** **AND**  

2. Either haven't login in all ( meaning have no entry in **EmployeeLogins**) OR if their last login was over 7 days ago) 

Based on this, I should be be getting Employee with IDs 1, 5, 6 and 10. Can someone help me writing Linq query to retrieve this data?