private async Task <IntegrationEventInstance> UpdateInstanceAsync(IntegrationEventInstance instance) { var database = _connectionMultiplexer.GetDatabase(); var created = await database.StringSetAsync(instance.Id, JsonConvert.SerializeObject(instance)); if (!created) { return(null); } return(await GetInstanceAsync(instance.Id, instance.EventType)); }
public async Task <IntegrationEventInstance> CreateInstanceAsync <T>() { string eventType = typeof(T).Name; var database = _connectionMultiplexer.GetDatabase(); var guid = Guid.NewGuid().ToString(); var model = await GetModelAsync <T>(); if (model == null) { return(null); } var instance = new IntegrationEventInstance(guid, eventType) { Subscribers = model.Subscribers }; var created = await database.StringSetAsync(guid, JsonConvert.SerializeObject(instance)); if (!created) { return(null); } var eInstances = await GetIntegrationEventRegisteredInstances(); if (eInstances == null) { eInstances = new Dictionary <string, string>(); } eInstances.Add(instance.Id, instance.EventType); eInstances = await SetIntegrationEventRegisteredInstances(eInstances); if (eInstances == null) { _logger.LogError("Error on set integration event registered instances"); } return(await GetInstanceAsync <T>(guid)); }