Exemple #1
0
        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());
        }
Exemple #2
0
        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"));
        }