Пример #1
0
 //Создание провайдера
 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);
 }
Пример #2
0
 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);
     }
 }