public HttpResponseMessage Get(string sortBy = "Id", Sortorder sortOrder = Sortorder.Ascending, int pageNumber = 1, int pageSize = 10) { var risks = _riskRepository.GetRisks(sortBy, sortOrder, pageNumber, pageSize); if (risks != null && risks.Any()) { var response = (from risk in risks select new{ risk.Id, risk.Title, Score = risk.RiskScore, Status = risk.Status.ToString(), risk.Owner }).ToList(); return(Request.CreateResponse(HttpStatusCode.OK, response)); } else { return(Request.CreateResponse(HttpStatusCode.NoContent)); } }
/// <summary> /// Get Risks /// </summary> /// <param name="sortBy">Sort Condition</param> /// <param name="sortOrder">Sort Order</param> /// <param name="pageNumber">Page Number</param> /// <param name="pageSize">Page Size</param> /// <returns>List Of Risk</returns> public List <Risk> GetRisks(string sortBy, Sortorder sortOrder, int pageNumber, int pageSize) { List <Risk> risks = null; var sortingOrder = (sortOrder == Sortorder.Ascending) ? "ASC" : "DESC"; if (pageNumber <= 0) { throw new ArgumentException($"Page Number:{pageNumber} received is invalid."); } if (_risks != null && _risks.Any()) { risks = (from risk in _risks.AsQueryable() orderby($"{sortBy} {sortingOrder}") select risk).Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList(); } return(risks); }