Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 4th, 2012  |  syntax: None  |  size: 2.00 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to write a LINQ statement with a GroupBy condition
  2. var RequestList = (from emp in _employeeIds
  3.                 from x in db.AnnualLeaveBookeds
  4.                 where x.EmployeeId == emp
  5.                 orderby x.AnnualLeaveDate
  6.                 select new RequestInfo
  7.                 {
  8.                     AnnualLeaveBookedId = x.AnnualLeaveBookedId,
  9.                     AnnualLeaveDate = x.AnnualLeaveDate,
  10.                     MorningOnlyFlag = x.MorningOnlyFlag,
  11.                     AfternoonOnlyFlag = x.AfternoonOnlyFlag,
  12.                     Forename = x.Employee.Forename,
  13.                     Surname = x.Employee.Surname,
  14.                     EmployeeId = x.Employee.EmployeeId,
  15.                     RequestDate = x.RequestDate,
  16.                     CancelRequestDate = x.CancelRequestDate,
  17.                     ApprovedFlag = (x.ApprovalDate.HasValue && x.ApproverId != Employee.LoggedInUser.EmployeeId),
  18.                     ApproveFlag = false,
  19.                     RejectFlag = false,
  20.                     Reason = string.Empty,
  21.                     FontColour = "Black"
  22.                 })
  23.                 .ToList();
  24.        
  25. var RequestList = (
  26.     from emp in _employeeIds
  27.     from x0 in db.AnnualLeaveBookeds
  28.     where x0.EmployeeId == emp
  29.     orderby x0.AnnualLeaveDate
  30.     group x0 by x0.AnnualLeaveDate into xs
  31.     from x in xs
  32.     select new RequestInfo
  33.     {
  34.         AnnualLeaveBookedId = x.AnnualLeaveBookedId,
  35.         AnnualLeaveDate = x.AnnualLeaveDate,
  36.         MorningOnlyFlag = x.MorningOnlyFlag,
  37.         AfternoonOnlyFlag = x.AfternoonOnlyFlag,
  38.         Forename = x.Employee.Forename,
  39.         Surname = x.Employee.Surname,
  40.         EmployeeId = x.Employee.EmployeeId,
  41.         RequestDate = x.RequestDate,
  42.         CancelRequestDate = x.CancelRequestDate,
  43.         ApprovedFlag = (x.ApprovalDate.HasValue
  44.             && x.ApproverId != Employee.LoggedInUser.EmployeeId),
  45.         ApproveFlag = false,
  46.         RejectFlag = false,
  47.         Reason = string.Empty,
  48.         FontColour = xs.Count() > 1 ? "Red" : "Black"
  49.     }).ToList();