Beispiel #1
0
 public static IQueryable <QCDevice> Project(
     this IQueryable <QCDevice> query, QCDeviceQueryProjection projection)
 {
     foreach (var f in projection.GetFieldsArr())
     {
         if (QCDeviceQueryProjection.MAPS.ContainsKey(f))
         {
             foreach (var prop in QCDeviceQueryProjection.MAPS[f])
             {
                 query = query.Include(prop);
             }
         }
     }
     return(query);
 }
        public async Task <IActionResult> Get([FromQuery][QueryObject] QCDeviceQueryFilter filter,
                                              [FromQuery] QCDeviceQuerySort sort,
                                              [FromQuery] QCDeviceQueryProjection projection,
                                              [FromQuery] QCDeviceQueryPaging paging,
                                              [FromQuery] QCDeviceQueryOptions options)
        {
            var validationData = _service.ValidateGetQCDevices(
                User, filter, sort, projection, paging, options);

            if (!validationData.IsValid)
            {
                return(BadRequest(AppResult.FailValidation(data: validationData)));
            }
            var result = await _service.QueryQCDeviceDynamic(
                projection, options, filter, sort, paging);

            if (options.single_only && result == null)
            {
                return(NotFound(AppResult.NotFound()));
            }
            return(Ok(AppResult.Success(result)));
        }