Esempio n. 1
0
        public async Task InvokeAsync(
            HttpContext context,
            IAssetStorage assetStore)
        {
            Guid id = Guid.Parse((string)context.GetRouteValue("id"));

            await assetStore.PublishAsync(id);
        }
Esempio n. 2
0
        public async Task InvokeAsync(
            HttpContext context,
            IAssetStorage assetStore)
        {
            Guid id = Guid.Parse((string)context.GetRouteValue("id"));

            await assetStore.UploadAsync(id, context.Request.ContentType, context.Request.Body);
        }
Esempio n. 3
0
        public async Task InvokeAsync(
            HttpContext context,
            IAssetStorage assetStore,
            JsonService jsonService)
        {
            Guid id = Guid.Parse((string)context.GetRouteValue("id"));

            var entity = await assetStore.GetAssetAsync(id);

            RestAsset restAsset = entity.ToRest();

            string json = jsonService.Serialize(restAsset);

            await context.Response.WriteAsync(json);
        }
Esempio n. 4
0
        public async Task InvokeAsync(
            HttpContext context,
            IAssetStorage assetStore,
            JsonService jsonService)
        {
            RestAsset restAsset = await jsonService.Deserialize <RestAsset>(context.Request.Body);

            Asset asset = restAsset.ToModel();

            await assetStore.CreateAsync(asset);

            var r = new ResourceCreated()
            {
                Id = asset.Id
            };

            string json = jsonService.Serialize(r);

            await context.Response.WriteAsync(json);
        }
Esempio n. 5
0
        public async Task InvokeAsync(
            HttpContext context,
            IAssetStorage assetStore,
            JsonService jsonService)
        {
            AssetQuery query = await jsonService.Deserialize <AssetQuery>(context.Request.Body);

            QueryResult <Asset> assets = await assetStore.GetAssetsAsync(query);

            QueryResult <RestAsset> queryResult = new QueryResult <RestAsset>();

            queryResult.Offset     = assets.Offset;
            queryResult.Count      = assets.Count;
            queryResult.TotalCount = assets.TotalCount;
            queryResult.Items      = assets.Items.Select(x => x.ToRest()).ToList();

            string json = jsonService.Serialize(queryResult);

            await context.Response.WriteAsync(json);
        }
Esempio n. 6
0
        public async Task InvokeAsync(
            HttpContext context,
            IAssetStorage assetStore)
        {
            Guid id = Guid.Parse((string)context.GetRouteValue("id"));

            Asset asset = await assetStore.GetAssetAsync(id);

            using (Stream assetStream = await assetStore.DownloadAsync(id))
            {
                context.Response.GetTypedHeaders().CacheControl = new CacheControlHeaderValue()
                {
                    Public = true, MaxAge = TimeSpan.FromDays(30)
                };
                context.Response.GetTypedHeaders().ETag = new EntityTagHeaderValue($"\"{asset.Hash}\"");
                context.Response.ContentType   = asset.MimeType;
                context.Response.ContentLength = assetStream.Length;

                await assetStream.CopyToAsync(context.Response.Body);
            }
        }