//Создание провайдера public Provider CreateProvider(Logger logger, string code, //Код провайдера string inf, //Настройки string projectCode = "") //Код проекта { try { if (!ProviderConfigs.ContainsKey(code)) { logger.AddWarning("Провайдер не указан или установлен", null, projectCode); return(null); } var prc = ProviderConfigs[code]; var pr = prc.Complect.Complect == "Clones" || prc.Complect.Complect == "Archives" ? NewStandardProvider(prc) : NewProvider(prc); pr.Logger = logger; pr.ProgressContext = projectCode; pr.Inf = inf; return(pr); } catch (Exception ex) { _app.AddError("Ошибка при создании провайдера", ex, code + "; " + inf); } return(null); }
public ProvidersFactory() { try { var doc = XDocument.Load(ItStatic.InfoTaskDir() + @"General\Config.xml"); foreach (var ncomp in doc.Element("Config").Element("Providers").Elements()) { var ccode = ncomp.GetName(); var complect = new ComplectConfig(ccode, ncomp.GetAttr("DllFile")); ComplectConfigs.Add(ccode, complect); foreach (var nprov in ncomp.Elements()) { var pcode = nprov.GetName(); var provider = new ProviderConfig(complect, nprov.GetAttr("ProviderType").ToProviderType(), nprov.GetAttr("SignalType").ToSignalType(), pcode); ProviderConfigs.Add(pcode, provider); } } } catch (Exception ex) { _app.AddError("Ошибка загрузки провайдеров из Config", ex); } }