public async void Run(
            [EventGridTrigger] EventGridEvent eventGridEvent, ILogger log)
        {
            log.LogInformation($"Process_VoyageCreatedExternalization2Transaction triggered....EventGridEvent" +
                               $"\n\tId:{ eventGridEvent.Id }" +
                               $"\n\tTopic:{ eventGridEvent.Topic }" +
                               $"\n\tSubject:{ eventGridEvent.Subject }" +
                               $"\n\tType:{ eventGridEvent.EventType }" +
                               $"\n\tData:{ eventGridEvent.Data }");

            try
            {
                VoyageCreatedEvent @event = JsonConvert.DeserializeObject <VoyageCreatedEvent>(eventGridEvent.Data.ToString());


                var transaction = await transactions.Find(t => t.Id == @event.TransactionId).FirstOrDefaultAsync();

                if (transaction == null)
                {
                    logger.LogInformation($"Process_VoyageCreatedExternalization2Transaction: That item does not exist: {@event.TransactionId}");
                    throw new Exception($"Couldn't find voyage with id: {@event.TransactionId}");
                }

                transaction.OrganizationName = @event.OrganizationName;
                transaction.StarCollected    = @event.StarCollected;
                transaction.VoyageId         = @event.VoyageId;
                transaction.Status           = Status.Processed;

                var replacedItem = await transactions.ReplaceOneAsync(t => t.Id == transaction.Id, transaction);
            }
            catch (Exception e)
            {
                var error = $"VoyageCreatedExternalization2Transaction failed: {e.Message}";
                logger.LogError(error);
            }
        }
Пример #2
0
 public void Apply(VoyageCreatedEvent aggregateEvent)
 {
     Schedule = aggregateEvent.Schedule;
 }