public async Task Run( [DurableClient] IDurableOrchestrationClient client, [ActivityTrigger] IDurableActivityContext context, ILogger log) { var command = context.GetInput <SaveApplicationCommand>(); var applicationToSave = _mapper.Map <SaveApplicationCommand, DataStorage.Models.Application>(command); var saveResult = await _applicationRepository.Create(applicationToSave); if (!saveResult.Success) { this.LogError(log, context.InstanceId, string.Join(',', saveResult.Errors.Select(x => x.Value))); var eventToDispatch = new ApplicationSaveFailedInternalFunctionEvent(saveResult.Errors); await client.RaiseEventAsync(context.InstanceId, nameof(ApplicationSaveFailedInternalFunctionEvent), eventToDispatch); return; } var applicationSavedEvent = new ApplicationSavedInternalFunctionEvent(applicationToSave); await client.RaiseEventAsync(context.InstanceId, nameof(ApplicationSavedInternalFunctionEvent), applicationSavedEvent); }
public async Task Run( [DurableClient] IDurableOrchestrationClient client, [ActivityTrigger] IDurableActivityContext context, ILogger log) { _correlationInitializer.Initialize(context.InstanceId); var command = context.GetInput <CreateApplicationCommand>(); var applicationCreatedEvent = _mapper.Map <CreateApplicationCommand, CreateApplicationProcessStartedEvent>(command); var result = await _eventStore.AppendEvent(applicationCreatedEvent.Id, applicationCreatedEvent); if (!result.Success) { var applicationSaveFailedEvent = new ApplicationSaveFailedInternalFunctionEvent(result.Errors); await client.RaiseEventAsync(context.InstanceId, nameof(ApplicationSaveFailedInternalFunctionEvent), applicationSaveFailedEvent); } log.LogProgress(OperationStatus.InProgress, "Application accepted", context.InstanceId); await _eventPublisher.PublishEvent(applicationCreatedEvent); var applicationSavedEvent = new ApplicationSavedInternalFunctionEvent(); await client.RaiseEventAsync(context.InstanceId, nameof(ApplicationSavedInternalFunctionEvent), applicationSavedEvent); }