feat(template-engine): TemplateService.MoveTemplateAsync

This commit is contained in:
Joseph Doherty
2026-05-11 11:02:03 -04:00
parent 723ab61bd8
commit 72b9f7e66e
2 changed files with 68 additions and 0 deletions

View File

@@ -155,6 +155,31 @@ public class TemplateService
return Result<bool>.Success(true);
}
public async Task<Result<Template>> MoveTemplateAsync(
int templateId,
int? newFolderId,
string user,
CancellationToken cancellationToken = default)
{
var template = await _repository.GetTemplateByIdAsync(templateId, cancellationToken);
if (template == null)
return Result<Template>.Failure($"Template with ID {templateId} not found.");
if (newFolderId.HasValue)
{
var folder = await _repository.GetFolderByIdAsync(newFolderId.Value, cancellationToken);
if (folder == null)
return Result<Template>.Failure($"Target folder with ID {newFolderId.Value} not found.");
}
template.FolderId = newFolderId;
await _repository.UpdateTemplateAsync(template, cancellationToken);
await _repository.SaveChangesAsync(cancellationToken);
await _auditService.LogAsync(user, "Move", "Template", template.Id.ToString(), template.Name, template, cancellationToken);
return Result<Template>.Success(template);
}
public async Task<Template?> GetTemplateByIdAsync(int templateId, CancellationToken cancellationToken = default)
{
return await _repository.GetTemplateByIdAsync(templateId, cancellationToken);