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));
            }
        }