Example #1
0
        public async Task <DeleteAccountResponse> Handle(DeleteAccountRequest request, CancellationToken cancellationToken)
        {
            var account = await accountRepository.GetByIdAsync(request.Id);

            if (account == null)
            {
                return(new DeleteAccountResponse(Guid.Empty, ""));
            }

            var posts = postRepository.GetAccountPosts(account.Id);

            foreach (var post in posts)
            {
                fileUploader.DeleteFolder(post.Id.ToString());
            }

            accountRepository.Delete(account);
            await unitOfWork.CommitAsync(account, cancellationToken);

            return(new DeleteAccountResponse(account.Id, account.Name));
        }