public void Build(Solution solution, bool onlyResources, bool checkTabularSectionKey = false, bool filtersOnly = false) { String configurationFile = System.IO.Path.Combine(solution.SolutionFolder, @"configuration\configuration.xml"); Factory factory = new Factory(); Dictionary <String, Parameter> globalParameters = factory.GetGlobalParameters(configurationFile); List <Entity> entities = new List <Entity>(); entities.AddRange(factory.GetEntities(configurationFile, checkTabularSectionKey)); entities.AddRange(factory.GetResources(solution.DeviceResourceFolder)); entities.AddRange(factory.GetAdmin()); Dictionary <String, List <Constant> > constants = factory.GetConstants(configurationFile); ConfigVersion configVersion = factory.GetVersion(configurationFile); Config config = new Config(configVersion, solution.DatabaseName, entities, globalParameters, constants); if (onlyResources) { BuildResources(config, solution); } else { if (filtersOnly) { BuildFilters(config, solution); } else { BuildAll(config, solution); InsertConstants(solution); } } }
public Config(ConfigVersion version, String solutionName, List <Entity> entities, Dictionary <String, Parameter> globalParameters, Dictionary <String, List <Constant> > constants) { this.configVersion = version; this.solutionName = solutionName; this.entities = entities; this.constants = constants; this.globalParameters = globalParameters; foreach (Entity entity in this.Entities) { entity.BuildSyncFilter(this); } }
public ConfigVersion GetVersion(String fileName) { ConfigVersion result = new ConfigVersion(); XmlDocument doc = new XmlDocument(); doc.Load(fileName); XmlAttribute aName = doc.DocumentElement.Attributes["Name"]; XmlAttribute aVersion = doc.DocumentElement.Attributes["Version"]; if (aName == null) { throw new Exception("Configuration node must contain 'Name' attribute."); } if (aVersion == null) { throw new Exception("Configuration node must contain 'Version' attribute."); } result.Name = aName.Value; result.Version = aVersion.Value; return(result); }