public IList<EmployeeLogView> GetEmployeeLog(SignInQuery query) { var criteria = Session.CreateCriteria<EmployeeLogView>(); criteria.Add(Expression.Between("SignInDate", query.SignInDateStart.Value, query.SignInDateEnd.Value)); if (query.LocationId.HasValue) criteria.CreateAlias("Location", "l").Add(Expression.Eq("l.Id", query.LocationId.Value)); return criteria.List<EmployeeLogView>(); }
public IList<EmployeeLog> GetEmployeeLog(SignInQuery query) { var criteria = Session.CreateCriteria<EmployeeLog>(); if (!string.IsNullOrEmpty(query.UserName)) criteria.CreateAlias("Employee", "e").Add(Expression.Like("e.Name", query.UserName + "%")); if (query.LocationId.HasValue) criteria.Add(Expression.Eq("LocationId", query.LocationId.Value)); if (query.SignInDateStart.HasValue) criteria.Add(Expression.Ge("SignInDate", query.SignInDateStart.Value)); if (query.SignInDateEnd.HasValue) criteria.Add(Expression.Le("SignInDate", query.SignInDateEnd.Value)); criteria.Add(Expression.IsNull("SignOutDate")); if (string.IsNullOrEmpty(query.SortBy)) criteria.AddOrder(new Order("Id", true)); else criteria.AddOrder(new Order(query.SortBy, (query.SortDirection != null && query.SortDirection.Equals("asc", StringComparison.InvariantCultureIgnoreCase)))); return criteria.List<EmployeeLog>(); }