diff --git a/Yavsc/Controllers/HomeController.cs b/Yavsc/Controllers/HomeController.cs index 8f623c5e..18b434bb 100644 --- a/Yavsc/Controllers/HomeController.cs +++ b/Yavsc/Controllers/HomeController.cs @@ -54,8 +54,33 @@ namespace Yavsc.Controllers ViewData["HasHaircutCommand"] = DbContext.HairCutQueries.Any (q=>q.ClientId == uid && q.Status < QueryStatus.Failed); - return View(DbContext.Activities.Where(a=>a.ParentCode==id && !a.Hidden).Include(a=>a.Forms).Include(a=>a.Children) - .OrderByDescending(a=>a.Rate)); + if (id==null) { + // Workaround + // NotImplementedException: Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator + // + // Use Concat()| whatever to do left outer join on ToArray() or ToList(), not on IQueryable + + var legacy = DbContext.Activities + .Include(a=>a.Forms).Include(a=>a.Children) + .Where(a=> !a.Hidden) + .Where(a=> a.ParentCode==null).ToArray(); + // OMG + var hiddenchildren = DbContext.Activities + .Include(a=>a.Forms).Include(a=>a.Children) + .Where(a=> a.Parent.Hidden && !a.Hidden).ToArray(); + + return View(legacy.Concat(hiddenchildren).OrderByDescending(a=>a.Rate)); + } + else { + return View(DbContext.Activities + .Include(a=>a.Forms).Include(a=>a.Children) + .Where(a=>!a.Hidden) + .Where(a=> a.ParentCode==id).OrderByDescending(a=>a.Rate)); + + } + + + } public IActionResult About() {