public async Task <HttpResponseMessage> GetAsync(string contextId = null, string id = null, int?limit = null, string activityId = null, string firstPage = null, int?p = null) { try { if (string.IsNullOrEmpty(id)) { // Get a paginated list of LineItem resources from a LineItemContainer int page = 1; if (p.HasValue) { if (firstPage != null && p.Value != 1) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, new ArgumentException("Request cannot specify both firstPage and a page number > 1"))); } page = p.Value; } var context = new GetLineItemsContext(contextId, limit, activityId, page); await OnGetLineItems(context); return(context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItemContainerPage, new LineItemContainerPageFormatter()) : Request.CreateResponse(context.StatusCode)); } else { // Get a representation of a particular LineItem instance var context = new GetLineItemContext(contextId, id); var mediaType = Request.Headers.Accept.Contains( new MediaTypeWithQualityHeaderValue(LtiConstants.LineItemResultsMediaType)) ? LtiConstants.LineItemResultsMediaType : LtiConstants.LineItemMediaType; if (mediaType.Equals(LtiConstants.LineItemResultsMediaType)) { await OnGetLineItemWithResults(context); } else { await OnGetLineItem(context); } return(context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItem, new LineItemFormatter(), mediaType) : Request.CreateResponse(context.StatusCode)); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public async Task<HttpResponseMessage> Get(string id = null, int? limit = null, string activityId = null, string firstPage = null, int? p = null) { try { if (string.IsNullOrEmpty(id)) { int page = 1; if (p.HasValue) { if (firstPage != null && p.Value != 1) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, new ArgumentException("Request cannot specify both firstPage and a page number > 1")); } page = p.Value; } var context = new GetLineItemsContext(limit, activityId, page); await OnGetLineItems(context); return context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItemContainerPage, new LineItemFormatter()) : Request.CreateResponse(context.StatusCode); } else { var context = new GetLineItemContext(id); await OnGetLineItem(context); return context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItem, new LineItemFormatter()) : Request.CreateResponse(context.StatusCode); } } catch (Exception ex) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex); } }
public async Task <HttpResponseMessage> Get(string id = null, int?limit = null, string activityId = null, string firstPage = null, int?p = null) { try { if (string.IsNullOrEmpty(id)) { int page = 1; if (p.HasValue) { if (firstPage != null && p.Value != 1) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, new ArgumentException("Request cannot specify both firstPage and a page number > 1"))); } page = p.Value; } var context = new GetLineItemsContext(limit, activityId, page); await OnGetLineItems(context); return(context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItemContainerPage, new LineItemFormatter()) : Request.CreateResponse(context.StatusCode)); } else { var context = new GetLineItemContext(id); await OnGetLineItem(context); return(context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItem, new LineItemFormatter()) : Request.CreateResponse(context.StatusCode)); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public async Task<HttpResponseMessage> Get(string contextId = null, string id = null, int? limit = null, string activityId = null, string firstPage = null, int? p = null) { try { if (string.IsNullOrEmpty(id)) { // Get a paginated list of LineItem resources from a LineItemContainer int page = 1; if (p.HasValue) { if (firstPage != null && p.Value != 1) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, new ArgumentException("Request cannot specify both firstPage and a page number > 1")); } page = p.Value; } var context = new GetLineItemsContext(contextId, limit, activityId, page); await OnGetLineItems(context); return context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItemContainerPage, new LineItemContainerPageFormatter()) : Request.CreateResponse(context.StatusCode); } else { // Get a representation of a particular LineItem instance var context = new GetLineItemContext(contextId, id); var mediaType = Request.Headers.Accept.Contains( new MediaTypeWithQualityHeaderValue(LtiConstants.LineItemResultsMediaType)) ? LtiConstants.LineItemResultsMediaType : LtiConstants.LineItemMediaType; if (mediaType.Equals(LtiConstants.LineItemResultsMediaType)) { await OnGetLineItemWithResults(context); } else { await OnGetLineItem(context); } return context.StatusCode == HttpStatusCode.OK ? Request.CreateResponse(context.StatusCode, context.LineItem, new LineItemFormatter(), mediaType) : Request.CreateResponse(context.StatusCode); } } catch (Exception ex) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex); } }