public async Task <int> Handle(CreateFolderCommand request, CancellationToken cancellationToken) { if (request.ParentId.HasValue && !await foldersRepository.Exists(request.ParentId.Value)) { throw new ParentFolderDoesNotExistRequestException(); } if (!await foldersRepository.IsUniqueInParent(request.Name, request.ParentId)) { throw new FolderNameMustBeUniqueInParentRequestException(); } var folder = new Folder(request.Name, request.ParentId); var folderId = await foldersRepository.AddAsync(folder); return(folderId); }