//====== IRequestHandler public async Task <Unit> Handle(UpdateFileDetailsFromMetadataCommand request, CancellationToken cancellationToken) { if (request.CanSkipExecution) { return(Unit.Value); } // TODO: should not run commands within commands (?) FileMetadataContainer result = await sender.Send(new GetMetadataFromFileContentQuery( request.FileId ), cancellationToken); if (request.UpdatePrimaryDateTime) { UtcTimestamp?creationTimestamp = result.TryGetGpsTimestamp(); if (creationTimestamp is not null) { var partialDateTime = PartialDateTime.FromUtcDateTime(creationTimestamp.Value); await sender.Send(new UpdateFileDetailsCommand( request.FileId ) { PrimaryDateTime = partialDateTime }, cancellationToken); } } return(Unit.Value); }