//Загрузка настроек из LocalData private void ReadLocalData() { AddEvent("Загрузка настроек проекта"); var elemRoot = XDocument.Load(LocalDir + "ConnectProperties.xml").Element("ConnectProperties"); foreach (var elem in elemRoot.Elements()) { var code = elem.GetName(); if (SchemeConnects.ContainsKey(code)) { var con = SchemeConnects[code]; var el = con.Type == ProviderType.Source ? elem.Element("SourceProvider") : (con.Type == ProviderType.Receiver ? elem.Element("ReceiverProvider") : null); if (el != null) { var prInf = ""; foreach (var prop in el.Elements()) { prInf += prop.GetName() + "=" + prop.GetAttr("PropValue") + ";"; } con.JoinProviders(el.GetAttr("Provider"), prInf); } } } }
//Загрузка данных из проекта private void ReadProjectData() { AddEvent("Загрузка схемы проекта"); var elemRoot = XDocument.Load(Dir + "ProjectProperties.xml").Element("ProjectProperties"); Initialize(elemRoot.GetAttr("ProjectCode"), elemRoot.GetAttr("ProjectName")); foreach (var elem in elemRoot.Element("Connects").Elements()) { var con = new SchemeConnect(elem.GetName().ToProviderType(), elem.GetAttr("Code"), elem.GetAttr("Complect"), elem.GetAttr("Description")); SchemeConnects.Add(con.Code, con); if (con.Type == ProviderType.Source) { SchemeSources.Add(con.Code, con); } if (con.Type == ProviderType.Receiver) { SchemeReceivers.Add(con.Code, con); } if (con.Type == ProviderType.Archive) { SchemeArchives.Add(con.Code, con); } } if (elemRoot.Elements("Proxies").Any()) { foreach (var elem in elemRoot.Element("Proxies").Elements()) { var proxy = new SchemeProxy(elem.GetName().ToProviderType(), elem.GetAttr("Code")); foreach (var el in elem.Element("InConnects").Elements()) { proxy.InConnects.Add(el.GetName()); } foreach (var el in elem.Element("OutConnects").Elements()) { proxy.OutConnects.Add(el.GetName()); } } } var modulesDir = new DirectoryInfo(Dir + @"Modules\"); if (modulesDir.Exists) { foreach (var mdir in modulesDir.GetDirectories()) { SchemeModules.Add(mdir.Name, new SchemeModule(this, mdir.Name)); } } }