public ODataHelperViewModel <T> GetOData(HttpContext context, ODataHelper <T> oData) { string queryString = string.Empty; if (context != null && context.Request != null && context.Request.QueryString != null && context.Request.QueryString.HasValue) { queryString = context.Request.QueryString.Value; } oData.Parse(queryString); Guid parentguid = Guid.Empty; var newNode = oData.ParseOrderByQuery(queryString); if (newNode == null) { newNode = new OrderByNode <T>(); } Predicate <T> predicate = null; if (oData != null && oData.Filter != null) { predicate = new Predicate <T>(oData.Filter); } int take = (oData?.Top == null || oData?.Top == 0) ? 100 : oData.Top; ODataHelperViewModel <T> oDataHelperViewModel = new ODataHelperViewModel <T>() { Direction = newNode.Direction, Predicate = predicate, Skip = oData.Skip, PropertyName = newNode.PropertyName, Take = take, Filter = oData.Filter, Sort = oData.Sort, Top = oData.Top, SortDirection = oData.SortDirection }; return(oDataHelperViewModel); }
public async Task <IActionResult> GetPeople( [FromRoute] string organizationId, [FromQuery(Name = "$filter")] string filter = "", [FromQuery(Name = "$orderby")] string orderBy = "", [FromQuery(Name = "$top")] int top = 100, [FromQuery(Name = "$skip")] int skip = 0) { try { ODataHelper <TeamMemberViewModel> oData = new ODataHelper <TeamMemberViewModel>(); string queryString = ""; if (HttpContext != null && HttpContext.Request != null && HttpContext.Request.QueryString != null && HttpContext.Request.QueryString.HasValue) { queryString = HttpContext.Request.QueryString.Value; } var newNode = oData.ParseOrderByQuery(queryString); if (newNode == null) { newNode = new OrderByNode <TeamMemberViewModel>(); } Guid orgId = Guid.Parse(organizationId); var result = _membershipManager.GetPeopleInOrganization(orgId, newNode.PropertyName, newNode.Direction, skip, top); return(Ok(result)); } catch (Exception ex) { return(ex.GetActionResult()); } }