public async Task ExecuteAsync( UpdateMediaMetadataMessage message, CancellationToken cancellationToken) { var messages = new List <MediaOperationCompletedMessage>(); foreach (Guid mediaId in message.Ids) { MediaOperationCompletedMessage msg = await UpdateMetadataAsync( mediaId, message.DateTaken, message.GeoLocation, cancellationToken); msg.OperationId = message.OperationId; messages.Add(msg); await _bus.Publish(msg, cancellationToken); } var completedmsg = new MediaOperationRequestCompletedMessage { Type = MediaOperationType.UpdateMetadata, OperationId = message.OperationId, SuccessCount = messages.Where(x => x.IsSuccess).Count(), ErrorCount = messages.Where(x => !x.IsSuccess).Count(), }; await _bus.Publish(completedmsg, cancellationToken); }
public async Task ExecuteAsync( RescanFacesMessage message, CancellationToken cancellationToken) { var messages = new List <MediaOperationCompletedMessage>(); foreach (Guid mediaId in message.Ids) { MediaOperationCompletedMessage msg = new(); msg.Type = MediaOperationType.RescanFaces; try { await _mediaFaceScanner .ScanByMediaIdAsync(mediaId, cancellationToken); msg.IsSuccess = true; msg.Type = MediaOperationType.RescanFaces; msg.MediaId = mediaId; msg.OperationId = message.OperationId; } catch (Exception ex) { msg.IsSuccess = false; msg.Message = ex.Message; } await _bus.Publish(msg, cancellationToken); } var completedmsg = new MediaOperationRequestCompletedMessage { Type = MediaOperationType.RescanFaces, OperationId = message.OperationId, SuccessCount = messages.Where(x => x.IsSuccess).Count(), ErrorCount = messages.Where(x => !x.IsSuccess).Count(), }; await _bus.Publish(completedmsg, cancellationToken); }