public async Task InvokeAsync( HttpContext context, IAssetStorage assetStore) { Guid id = Guid.Parse((string)context.GetRouteValue("id")); await assetStore.PublishAsync(id); }
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); }
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); }
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); }
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); }
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); } }