public Task <Result <string, Error> > Handle(CreateRantWithIdCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.Content))
            {
                return(Task.FromResult(Result <string, Error> .Error(new InvalidRant())));
            }

            if (rants.ContainsKey(request.Id))
            {
                return(Task.FromResult(Result <string, Error> .Error(new DuplicateId())));
            }

            var rant = new Rant(request.Id, request.Content, request.Tags);

            rants.Add(rant.ID, rant);
            return(Task.FromResult(Result <string, Error> .Success(request.Id)));
        }
Example #2
0
        public async Task <Result <string, Error> > Handle(CreateRantWithIdCommand request, CancellationToken cancellationToken)
        {
            await EnsureContainerExists();

            if (string.IsNullOrWhiteSpace(request.Content))
            {
                return(Result <string, Error> .Error(new InvalidRant()));
            }

            var reference = blobContainer.GetBlockBlobReference(request.Id);

            if (await reference.ExistsAsync())
            {
                return(Result <string, Error> .Error(new DuplicateId()));
            }

            await reference.UploadTextAsync(JsonConvert.SerializeObject(new Rant(request.Id, request.Content, request.Tags)));

            return(Result <string, Error> .Success(request.Id));
        }