@@ -18,7 +18,7 @@ public class FileTransformFunction(
1818 ServiceLayerDbContext serviceLayerDbContext ,
1919 IFileTransformQueueClient fileTransformQueueClient ,
2020 IMeshFilesBlobStore meshFileBlobStore ,
21- IEnumerable < IFileTransformer > fileTransformers )
21+ IEnumerable < IFileTransformer > fileTransformers ) : MeshFileFunctionBase ( serviceLayerDbContext )
2222{
2323 private static readonly JsonSerializerOptions ValidationErrorJsonOptions = new ( )
2424 {
@@ -34,15 +34,15 @@ public async Task Run([QueueTrigger("%FileTransformQueueName%")] FileTransformQu
3434 logger . LogInformation ( "{FunctionName} started. Processing fileId: {FileId}" , nameof ( FileTransformFunction ) ,
3535 message . FileId ) ;
3636
37- await using var transaction = await serviceLayerDbContext . Database . BeginTransactionAsync ( ) ;
37+ await using var transaction = await ServiceLayerDbContext . Database . BeginTransactionAsync ( ) ;
3838
3939 var file = await GetFileAsync ( message . FileId ) ;
4040 if ( file == null || ! IsFileSuitableForTransformation ( file ) )
4141 {
4242 return ;
4343 }
4444
45- await UpdateFileStatusForTransformation ( file ) ;
45+ await UpdateFileStatus ( file , MeshFileStatus . Transforming ) ;
4646 await transaction . CommitAsync ( ) ;
4747
4848 try
@@ -57,7 +57,7 @@ public async Task Run([QueueTrigger("%FileTransformQueueName%")] FileTransformQu
5757
5858 private async Task < MeshFile ? > GetFileAsync ( string fileId )
5959 {
60- var file = await serviceLayerDbContext . MeshFiles
60+ var file = await ServiceLayerDbContext . MeshFiles
6161 . FirstOrDefaultAsync ( f => f . FileId == fileId ) ;
6262
6363 if ( file == null )
@@ -87,13 +87,6 @@ private bool IsFileSuitableForTransformation(MeshFile file)
8787 return true ;
8888 }
8989
90- private async Task UpdateFileStatusForTransformation ( MeshFile file )
91- {
92- file . Status = MeshFileStatus . Transforming ;
93- file . LastUpdatedUtc = DateTime . UtcNow ;
94- await serviceLayerDbContext . SaveChangesAsync ( ) ;
95- }
96-
9790 private async Task ProcessFileTransformation ( MeshFile file )
9891 {
9992 var transformer = GetTransformerFor ( file . FileType ) ;
@@ -107,9 +100,7 @@ private async Task ProcessFileTransformation(MeshFile file)
107100 throw new InvalidOperationException ( "Validation errors encountered" ) ;
108101 }
109102
110- file . Status = MeshFileStatus . Transformed ;
111- file . LastUpdatedUtc = DateTime . UtcNow ;
112- await serviceLayerDbContext . SaveChangesAsync ( ) ;
103+ await UpdateFileStatus ( file , MeshFileStatus . Transformed ) ;
113104 }
114105
115106 private IFileTransformer GetTransformerFor ( MeshFileType type )
@@ -129,9 +120,9 @@ private IFileTransformer GetTransformerFor(MeshFileType type)
129120 private async Task HandleTransformationError ( MeshFile file , FileTransformQueueMessage message , Exception ex )
130121 {
131122 logger . LogError ( ex , "An exception occurred during file transformation for fileId: {FileId}" , message . FileId ) ;
132- file . Status = MeshFileStatus . FailedTransform ;
133- file . LastUpdatedUtc = DateTime . UtcNow ;
134- await serviceLayerDbContext . SaveChangesAsync ( ) ;
123+ await UpdateFileStatus ( file , MeshFileStatus . FailedTransform ) ;
135124 await fileTransformQueueClient . SendToPoisonQueueAsync ( message ) ;
136125 }
126+
127+ protected override FileEventSource Source => FileEventSource . TransformFunction ;
137128}
0 commit comments