public async Task <IActionResult> Get(string layerId, int z, int x, int y, string fileExtension, string fileSerializer, [FromQuery(Name = "access_token")] string accessToken)
        {
            tileContext.Identifier = layerId;
            var tile = await tileRetrieverService.GetTile(z, x, y);

            if (tile != null)
            {
                var factory = new ProtoBufSerializationFactory();
                factory.BuildFrom(tile, tileContext);

                var memStream = new MemoryStream();
                using (var serialStream = factory.SerializeTile())
                {
                    await serialStream.CopyToAsync(memStream);
                }
                memStream.Position = 0;
                return(File(memStream, "application/octet-stream", "tile.pbf"));
            }
            else
            {
                return(new EmptyResult());
            }
            //var path = files.GetFileInfo($"{layerId}.{fileExtension}.{fileSerializer}");

            //var memStream = new MemoryStream();
            //using (var stream = new FileStream(path.PhysicalPath, FileMode.Open))
            //{
            //    await stream.CopyToAsync(memStream);
            //}
            //memStream.Position = 0;
            //return File(memStream, "application/octet-stream", "tile.pbf");
        }
        public void using_polygon_transformed_tile_generate_serialized_tile()
        {
            // the goal of this test is to take a TransformedTile, which is the coordinates of a geometry feature //
            // and turn it into a group of Commands with parameters. //
            var tile    = Container.GetService <IConfigurationStrategy>().Into <TransformedTile>("transformed_tile");
            var factory = new ProtoBufSerializationFactory();

            factory.BuildFrom(tile, new MockTileContext());
            var stream = factory.SerializeTile();

            Assert.IsNotNull(stream);
            Assert.AreEqual(47, stream.Length);
        }
        public async Task using_points_tile_generate_serialized_tile()
        {
            Container.GetService <MockContextRepository>().TryGetAs <MockTileContext>("simple_points", out MockTileContext context);

            var accessor  = new LayerTileCacheAccessor(() => new MockTransformedCacheStorage(), () => new MockRawCacheStorage());
            var generator = new Generator(context, accessor,
                                          new LayerInitializationFileService(Container.GetService <IFileProvider>()));

            var retriever = new TileRetrieverService(accessor, context, generator);

            var tile = await retriever.GetTile(0, 0, 0);

            var factory = new ProtoBufSerializationFactory();

            factory.BuildFrom(tile, new MockTileContext());
            var stream = factory.SerializeTile();

            Assert.IsNotNull(stream);
            Assert.AreEqual(114, stream.Length);
        }