Пример #1
0
 private void Provision <Target, TConfigure>(
     NameConfigure[] nameConfigures,
     Dictionary <string, Target> container,
     IConfigurationFactory <TConfigure> configurationFactory,
     IServiceFactory <Target, TConfigure> serviceFactory) where TConfigure : IConfigure
 {
     if (nameConfigures != null)
     {
         logger.Info("Provisioning...");
         foreach (var item in nameConfigures)
         {
             try
             {
                 Variables.ToList().ForEach(x => item.ConfigureFile = item.ConfigureFile.Replace("{$" + x.Key + "}", x.Value));
                 logger.Debug($"Provisioning:{item.Name}");
                 logger.Info("Configure File:" + item.ConfigureFile);
                 var configure = configurationFactory.CreateConfigure(this.Storage, item.ConfigureFile);
                 var instance  = serviceFactory.GetService(configure);
                 container[item.Name] = instance;
                 logger.Debug($"Provisioned:{item.Name}");
             }
             catch (Exception ex)
             {
                 logger.Error($"{item.Name} provision fail, Caused by{ex.Message}");
             }
         }
         logger.Info("Provisioned");
     }
     else
     {
         logger.Warn("Nothing Provision");
     }
 }