public HttpResponseMessage Get([FromUri] Query query) { var data = db.database_bd.AsQueryable(); int pageSize = 10; if (query.price_type != null) { data = data.Where(c => c.Cover == query.price_type); } if (query.endDate != null) { data = data.Where(c => c.UploadDate <= query.endDate); } if (query.startDate != null) { data = data.Where(c => c.UploadDate >= query.startDate); } // If any other filters are specified, return records which match any of them: var filteredData = new List<IQueryable<database_bd>>(); if (!string.IsNullOrEmpty(query.name)) { var ids = query.name.Split(','); foreach (string i in ids) { filteredData.Add(data.Where(c => c.Name != null && c.Name.Contains(i))); } } if (filteredData.Count != 0) { data = filteredData.Aggregate(Queryable.Union); } if (!data.Any()) { var message = string.Format("No data was found"); return Request.CreateErrorResponse(HttpStatusCode.NotFound, message); } int total = data.Count(); data = data.OrderByDescending(c => c.UploadDate).Take(10); if (filteredData.Count != 0) { data = data.OrderByDescending(d => d.UploadDate).Take(pageSize); } //return Request.CreateResponse(HttpStatusCode.OK, data); return Request.CreateResponse(HttpStatusCode.OK, new { total, data }); }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)