feat(template-engine): TemplateService.MoveTemplateAsync
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user