public async Task <IActionResult> Delete(Guid patternId) { var(pattern, _) = await Cluster.GetAsync($"pattern-{patternId}", ActorKind.Pattern); var query = new GetPatternOwner { RequestId = Guid.NewGuid().ToString(), PatternId = patternId.ToString() }; var response = await pattern.RequestAsync <PatternOwner>(query, 10.Seconds()); if (response.OwnerId != User.GetUserId()) { return(Forbid()); } await pattern.RequestAsync <PatternDeleted>(new DeletePattern { Id = patternId.ToString() }, 10.Seconds()); return(Ok()); }
public async Task <IActionResult> GetThumbnail(Guid patternId, int width = 300, int height = 200) { var(pattern, _) = await Cluster.GetAsync($"pattern-{patternId}", ActorKind.Pattern); var queryOwner = new GetPatternOwner { RequestId = Guid.NewGuid().ToString(), PatternId = patternId.ToString() }; var response = await pattern.RequestAsync <PatternOwner>(queryOwner, 10.Seconds()); if (response.OwnerId != User.GetUserId()) { return(Forbid()); } var query = new GetThumbnail { Id = Guid.NewGuid().ToString(), Height = height, Width = width }; var thumbnail = await pattern.RequestAsync <Thumbnail>(query, 10.Seconds()); return(File(thumbnail.Image.ToByteArray(), "image/png")); }