private static void Deserialize(IReadOnlyDictionary <string, string> values, ITaskProcessorPollingQueuesConfiguration result, string prefix) { if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith(".", StringComparison.Ordinal)) { prefix = prefix + "."; } foreach (KeyValuePair <string, string> pair in values.Where(v => v.Key.StartsWith(prefix, StringComparison.Ordinal) && v.Key.EndsWith(".Type", StringComparison.Ordinal))) { string key = pair.Value; ITaskProcessorPollingQueueConfiguration config = result.Add(key); config.MaxWorkers = RedisConverter.ParseInteger(values[prefix + key + ".MaxWorkers"]); RedisTaskProcessorConfigurationRepository.Deserialize(values, config, prefix + key); } }
private static void MergeWith(this ITaskProcessorPollingQueuesConfiguration source, ITaskProcessorPollingQueuesConfiguration other) { foreach (ITaskProcessorPollingQueueConfiguration queueConfig in source.ToArray()) { if (other[queueConfig.Key] == null) { source.Remove(queueConfig.Key); } } foreach (ITaskProcessorPollingQueueConfiguration queueConfig in other) { if (source[queueConfig.Key] == null) { source.AddCopy(queueConfig); } } }
private static void Serialize(ITaskProcessorPollingQueuesConfiguration configuration, IDictionary <string, string> result, string prefix) { if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith(".", StringComparison.Ordinal)) { prefix = prefix + "."; } foreach (ITaskProcessorPollingQueueConfiguration config in configuration) { result.Add( string.Concat(prefix, config.Key, ".Type"), RedisConverter.ToString(config.Key)); result.Add( string.Concat(prefix, config.Key, ".MaxWorkers"), RedisConverter.ToString(config.MaxWorkers)); RedisTaskProcessorConfigurationRepository.Serialize(config, result, prefix + config.Key); } }