Esempio n. 1
0
 public static JMXFactory Create(IServiceProvider services, MdbContext workMdbContext)
 {
     if (_schemaFactory == null)
     {
         var mdbFactory    = services.GetRequiredService <IMdbContextFactory>();
         var sysCatMdb     = mdbFactory.GetContext(Strings.SysCatConnection);
         var schemaFactory = CreateFactoryFromMdbContext(services, sysCatMdb);
         if (_schemaFactory == null)
         {
             lock (obj4Lock)
                 _schemaFactory = schemaFactory;
         }
     }
     return(CreateFactoryFromMdbContext(services, workMdbContext));
 }
Esempio n. 2
0
        private static JMXFactory CreateFactoryFromMdbContext(IServiceProvider services, MdbContext mdb)
        {
            var l = ImplementsList.GetTypes(typeof(JMXFactory));

            if (l == null)
            {
                //No class inherited from JMXFactory defined
                throw new InvalidOperationException(Strings.S031_MetaStack_Core_ORM_JMXFactory_Create_1);
            }

            string     dbProviderName = mdb.ProviderName;
            JMXFactory factory        = null;

            foreach (var t in l)
            {
                if (System.Attribute.GetCustomAttributes(t)?
                    .FirstOrDefault(attr => attr.GetType() == typeof(DBRefAttribute) &&
                                    (attr as DBRefAttribute)
                                    .DBProviderName
                                    .Equals(dbProviderName, StringComparison.OrdinalIgnoreCase)) is DBRefAttribute att)
                {
                    factory = (JMXFactory)t.CreateInstance(mdb);
                    break;
                }
            }
            if (factory == null)
            {
                //No class inherited from JMXFactory contained attribute of type DBRefAttribute  defined
                throw new InvalidOperationException(Properties.Strings.S031_MetaStack_Core_ORM_JMXFactory_Create_2);
            }
            factory._services = services;
            factory._mdb      = mdb;
            factory._logger   = services
                                .GetRequiredService <ILoggerProvider>()
                                .CreateLogger(typeof(JMXFactory).FullName);
            return(factory);
        }
Esempio n. 3
0
 public JMXProvider(JMXFactory factory)
 {
     _factory = factory;
 }
Esempio n. 4
0
 public JMXRepo(JMXFactory factory)
 {
     _factory = factory;
 }
Esempio n. 5
0
 public JMXBalance(JMXFactory factory)
 {
     _factory = factory;
 }