/// <summary> /// List profile /// </summary> /// <param name="request"></param> /// <returns>The list of profile items</returns> public async Task <APIGatewayProxyResponse> Get(APIGatewayProxyRequest request, ILambdaContext context) { string page = "1"; string limit = "5"; if (request.QueryStringParameters != null && request.QueryStringParameters.ContainsKey("page")) { page = request.QueryStringParameters["page"]; } if (request.QueryStringParameters != null && request.QueryStringParameters.ContainsKey("limit")) { limit = request.QueryStringParameters["limit"]; } FilterRequestModel filter = new FilterRequestModel { Page = page, Limit = limit }; var profileService = _service.GetService <ProfileService>(); var response = await profileService.ListProfileAsync(filter); return(response); }
public async Task <APIGatewayProxyResponse> ListProfileAsync(FilterRequestModel filter) { decimal perPage = Decimal.Parse(filter.Limit); int currentPage = Int32.Parse(filter.Page); int skip = (currentPage - 1) * (int)perPage; List <ProfileModel> data_list = await _context_db.Profiles.AsNoTracking().Skip(skip).Take((int)perPage).ToListAsync(); decimal totalData = await _context_db.Profiles.CountAsync(); int totalPageNumber = (int)Math.Ceiling(totalData / perPage); ListProfileModel result = new ListProfileModel { version = "2.0", totalItem = (int)totalData, perPage = (int)perPage, totalPageNumber = totalPageNumber, currentPage = currentPage, Profiles = data_list }; APIGatewayProxyResponse respond = new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.OK, Headers = new Dictionary <string, string> { { "Content-Type", "application/json" }, { "Access-Control-Allow-Origin", "*" } }, Body = JsonConvert.SerializeObject(result) }; return(respond); }