public IActionResult GetWorkorders([FromQuery] WorkorderFilterParams filterParams) { IEnumerable <Workorder> workorders; if (filterParams.Limit != null) { workorders = _context.Workorders .Include(w => w.State) .Include(w => w.Faculty) .Include(w => w.Purpose) .OrderByDescending(w => w.Id) .Take((int)filterParams.Limit).ToList(); } else { workorders = _context.Workorders .Include(w => w.State) .Include(w => w.Faculty) .Include(w => w.Purpose); } var hal = new HalRepresentation() .AddEmbeddedResource("workorders", workorders, this.Request.Path) .AddLink("self", this.Request.Path, HttpType.GET); return(Ok(workorders)); //return Ok(hal.GetRepresentation()); }
public IActionResult GetFilteredWorkorders([FromQuery] WorkorderFilterParams filters) { var workorders = _context.Workorders .Include(w => w.State) .Include(w => w.Faculty) .Include(w => w.Purpose) .Select(w => w); if (filters.State != null) { workorders = workorders.Where(w => w.State.Id == filters.State); } if (filters.Faculty != null) { workorders = workorders.Where(w => w.Faculty.Id == filters.Faculty); } if (filters.Purpose != null) { workorders = workorders.Where(w => w.Purpose.Id == filters.Purpose); } if (filters.Limit != null) { return(Ok(workorders .OrderByDescending(w => w.Id) .Take((int)filters.Limit).ToList())); } else { return(Ok(workorders)); } }