示例#1
0
        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));
        }
示例#2
0
        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));
        }