public async Task <ActionResult <FolderResource> > Get(int id)
        {
            try
            {
                var query    = new ReadFolderQuery(id);
                var response = await mediator.Send(query);

                var folderResource = new FolderResource(response);
                folderResource.EnrichWithLinks(this);

                return(folderResource);
            }
            catch (NotFoundRequestException)
            {
                return(NotFound());
            }
        }
        public async Task <ActionResult <FolderResource> > Post([FromBody] FolderResource folder)
        {
            try
            {
                var command  = new CreateFolderCommand(folder.Name);
                var folderId = await mediator.Send(command);

                var query    = new ReadFolderQuery(folderId);
                var response = await mediator.Send(query);

                var folderResource = new FolderResource(response);
                folderResource.EnrichWithLinks(this);

                return(folderResource);
            }
            catch (FolderNameMustBeUniqueInParentRequestException)
            {
                return(this.BadRequest(ApiErrors.FolderNameMustBeUniqueInParent));
            }
        }