Пример #1
0
        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));
            }
        }
Пример #2
0
        /// <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());
        }