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?