public void Save(EditConfigsViewModel model) { var configParser = new DefaultConfigParser(); foreach (var config in model.Configs) { //find the generator node, if GeneratorTypeName is diff than the service, add it as a component var generator = config.Components.FirstOrDefault(x => { return x.ServiceTypeName.Equals("HyperActive.Core.Generators.ActiveRecordGenerator, HyperActive"); }); if (generator != null && !String.IsNullOrEmpty(config.GeneratorTypeName)) { generator.ServiceImplementationTypeName = config.GeneratorTypeName; } } var options = Convert(model.Configs); configParser.WriteXml(model.ConfigFilePath, options); }
public EditConfigsViewModel EditConfigs(string configFilePath) { var result = new EditConfigsViewModel(); result.ConfigFilePath = configFilePath; var configParser = new DefaultConfigParser(); var options = configParser.ParseXml(File.ReadAllText(configFilePath)); var models = Convert(options); foreach (var model in models) { var generator = model.Components.FirstOrDefault(x => { return x.ServiceTypeName.Equals("HyperActive.Core.Generators.ActiveRecordGenerator, HyperActive"); }); if (generator != null && !String.IsNullOrEmpty(generator.ServiceImplementationTypeName)) { model.GeneratorTypeName = generator.ServiceImplementationTypeName; } result.Configs.Add(model); } //ensure that each config section has at least one component node which defines the AR generator return result; }
public EditConfigsViewModel CreateConfig() { var result = new EditConfigsViewModel(); result.Configs.Add(new ConfigurationOptionsViewModel()); return result; }