private static void GenerateSettingsFiles(string ms, string pg, string d, string u, string p, FileInfo o) { IMetadataService metadataService = new MetadataService(); if (!string.IsNullOrWhiteSpace(ms)) { metadataService.UseDatabaseProvider(DatabaseProviders.SQLServer); metadataService.ConfigureConnectionString(ms, d, u, p); } else { metadataService.UseDatabaseProvider(DatabaseProviders.PostgreSQL); metadataService.ConfigureConnectionString(pg, d, u, p); } InfoBase infoBase = metadataService.LoadInfoBase(); MessageConsumerSettings consumerSettings = CreateConsumerSettings(infoBase, metadataService); MessageProducerSettings producerSettings = CreateProducerSettings(infoBase, metadataService); string consumerPath = Path.Combine(o.FullName, CONSUMER_SETTINGS_FILE_NAME); string producerPath = Path.Combine(o.FullName, PRODUCER_SETTINGS_FILE_NAME); SaveConsumerSettings(consumerPath, consumerSettings); SaveProducerSettings(producerPath, producerSettings); }
private static void ConfigureConsumerSettings(IServiceCollection services, string catalogPath) { MessageConsumerSettings settings = new MessageConsumerSettings(); IConfigurationRoot config = new ConfigurationBuilder() .SetBasePath(catalogPath) .AddJsonFile("consumer-settings.json", optional: false) .Build(); config.Bind(settings); services.Configure <MessageConsumerSettings>(config); }
private static void SaveConsumerSettings(string filePath, MessageConsumerSettings consumerSettings) { JsonSerializerOptions options = new JsonSerializerOptions() { WriteIndented = true, Encoder = JavaScriptEncoder.Create(UnicodeRanges.All) }; byte[] bytes = JsonSerializer.SerializeToUtf8Bytes(consumerSettings, options); string json = Encoding.UTF8.GetString(bytes); using (StreamWriter stream = new StreamWriter(filePath, false, Encoding.UTF8)) { stream.Write(json); } }
private static MessageConsumerSettings CreateConsumerSettings(IMetadataService metadataService) { MessageConsumerSettings settings = new MessageConsumerSettings(); //ApplicationObject metaObject = infoBase.InformationRegisters.Values // .Where(с => с.Name == CONSUMER_TABLE_QUEUE_NAME).FirstOrDefault(); //if (metaObject == null) return settings; settings.DatabaseSettings = new Consumer.DatabaseSettings() { DatabaseProvider = metadataService.DatabaseProvider, ConnectionString = metadataService.ConnectionString }; return(settings); }
private static MessageConsumerSettings CreateConsumerSettings(InfoBase infoBase, IMetadataService metadataService) { MessageConsumerSettings settings = new MessageConsumerSettings(); MetadataObject metaObject = infoBase.InformationRegisters.Values.Where(с => с.Name == CONSUMER_TABLE_QUEUE_NAME).FirstOrDefault(); if (metaObject == null) { return(settings); } metadataService.EnrichFromDatabase(metaObject); settings.DatabaseSettings = new Consumer.DatabaseSettings() { DatabaseProvider = metadataService.DatabaseProvider, ConnectionString = metadataService.ConnectionString, DatabaseQueue = new Consumer.DatabaseQueue() { TableName = metaObject.TableName, ObjectName = string.Format("{0}.{1}", METAOBJECT_BASE_NAME, CONSUMER_TABLE_QUEUE_NAME) } }; foreach (MetadataProperty property in metaObject.Properties) { foreach (DatabaseField field in property.Fields) { settings.DatabaseSettings.DatabaseQueue.Fields.Add(new Consumer.TableField() { Name = field.Name, Property = property.Name }); } } return(settings); }