public async Task <ActionResult <DatasetDTO> > Dataset( string queryid, [FromQuery] string datasetid, [FromQuery] Shape shape, [FromQuery] long?early, [FromQuery] long?late, [FromServices] DatasetProvider provider, CancellationToken cancelToken ) { try { var queryref = new QueryRef(queryid); var datasetref = new DatasetQueryRef(datasetid, shape); var result = await provider.Dataset(queryref, datasetref, cancelToken, early, late); switch (result.Context.State) { case CompilerContextState.DatasetShapeMismatch: return(BadRequest(new CompilerErrorDTO(result.Context.State))); case CompilerContextState.DatasetNotFound: case CompilerContextState.QueryNotFound: return(NotFound(new CompilerErrorDTO(result.Context.State))); } return(Ok(new DatasetDTO(result.Dataset))); } catch (FormatException fe) { log.LogWarning("Malformed dataset identifiers. Error:{Error}", fe.Message); return(BadRequest()); } catch (LeafPreflightException lpe) { log.LogInformation("Dataset query failed preflight check. Error:{Error}", lpe.Message); return(BadRequest()); } catch (OperationCanceledException) { log.LogInformation("Request cancelled. QueryID:{QueryID} DatasetId:{DatasetId}", queryid, datasetid); return(NoContent()); } catch (LeafDbException lde) { return(StatusCode(lde.StatusCode)); } catch (LeafCompilerException) { return(StatusCode(StatusCodes.Status500InternalServerError)); } catch (Exception ex) { log.LogError("Could not fetch dataset. QueryID:{QueryID} DatasetID:{DatasetID} Error:{Error}", queryid, datasetid, ex.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError)); } }
/// <summary> /// Gets the dataset form disk. /// </summary> /// <returns>A list of <see cref="MnistImage"/> objects.</returns> private List <MnistImage> GetDataset() { var provider = new DatasetProvider(); return(provider.LoadDataset()); }