public xDatabaseAccessorFactory(StoreLakeDbServer dbServer, StoreLakeDabaseAccessorGate accessorGate, DbProviderFactory dbClient, string connectionString)
 {
     this.dbServer         = dbServer;
     this.accessorGate     = accessorGate;
     this.dbClient         = dbClient;
     this.connectionString = connectionString;
 }
        private void Dispose(bool disposing)
        {
            if (disposing)
            {
                gate = null;

                var tmp = accessor;
                accessor = null;
                if (tmp != null)
                {
                    tmp.Dispose();
                }
            }
        }
Esempio n. 3
0
        //private static Helpline.Data.IntThreeSetRow[] read_Udt(DbCommand cmd, string name)
        //{
        //    //System.Linq.Enumerable.Select()
        //    IDataRecord[] records = System.Linq.Enumerable.ToArray((IEnumerable<IDataRecord>)cmd.Parameters[name]);

        //    Helpline.Data.IntThreeSetRow[] rows = new Helpline.Data.IntThreeSetRow[records.Length];
        //    for (int ix = 0; ix < records.Length; ix++)
        //    {
        //        rows[ix] = new Helpline.Data.IntThreeSetRow(records[ix]);
        //    }
        //    return rows;
        //}

        private static void Test01()
        {
            var db = StoreLakeDatabaseServer.CreateDatabase("MyDB")
                     .Use(DatabaseGetUtcDateExtension.Register)
                     .Use(HelplineDataExtensions.RegisterDataSetModel)    // using 'Helpline.Data.TestStore.HelplineDataExtensions'
                                                                          //.Use(HelplineDataExtensions_X.RegisterDataSetModel)
                     .Use(SLMDatabaseDataExtensions.RegisterDataSetModel) // using Helpline.SLM.Database.Data.TestStore.SLMDatabaseDataExtensions
                     .Use(DatabaseGetUtcDateExtension.Register)
                     .Use(TweetExtension.Register)
                     .Build()
                     .SetCommandExecuteHandlerInstanceForHelplineDataProceduresFacade <DemoHandler4_FacadeHandler>();

            //.SetHandlerForHelplineDataProcedures<DemoHandler4_CommandHandler>()
            //.SetCommandExecuteHandlerInstanceForHelplineDataProceduresFacade<DemoHandler4>() // SetFacade
            //.SetCommandExecuteHandlerInstanceForHelplineDataProceduresHandler<DemoHandler4_CommandHandler>()
            ;
            //HelplineDataExtensions.SetCommandExecuteHandlerInstanceForHelplineDataProceduresHandler<DataSet, DemoHandler4_CommandHandler>(db);
            //HelplineDataExtensions.SetCommandExecuteHandlerInstanceForHelplineDataProceduresFacade<DataSet, DemoHandler4_FacadeHandler>(db);

            Console.WriteLine("timenow:" + db.GetUtcDate());

            // [SomeComplicatedMultipleResultSetProc]

            var hlsysagent = db.hlsysagent();
            var agent710   = db.hlsysagent().AddRowWithValues(agentid: 710, name: "InternetAgent", fullname: null, description: null, active: 1); //  see 'DF_hlsysagent_active'

            //agent1.agentid = 710;
            agent710.description = agent710.name + ":" + agent710.agentid;

            // NULL defaults?
            // DEFAULT values?
            // UNIQUE Key?
            // AutoIncrement?
            // ReadOnlyPK
            var agent2 = db.hlsysagent().AddRowWithValues(712, "InternetAgent2", null, null, 1); //e.active = 1; see 'DF_hlsysagent_active'

            db.hlsysagentroutingblacklist().AddRowWithValues(712);

            var group700 = db.hlsysgroup().AddRowWithValues(700, "Administrators");

            var global_123 = db.hlsysglobalpolicy().AddRowWithValues(123, "g:123", 11223);

            db.hlsysagenttogroup().AddRowWithValues(agent710.agentid, 700);
            db.hlsysglobalacl().AddRowWithValues(123, 700, 0x0010);

            Console.WriteLine("db.hlsysagent.Count:" + db.hlsysagent().Count);

            StoreLakeDbServer dbServer = new StoreLakeDbServer(db);

            dbServer.RegisterProcedureHandlers <HelplineDataProceduresCommandExecuteHandler>(x => x.HelplineDataProceduresHandler()
                                                                                             , HelplineDataProceduresCommandExecuteHandler.TryGetHandlerForCommandExecuteProcedureNonQuery
                                                                                             , HelplineDataProceduresCommandExecuteHandler.TryGetHandlerForCommandExecuteProcedureQuery);

            // on reflection/discovery (methodname=procedurename) dbServer.RegisterAddedCommandHandlerContract(db, db.HelplineDataProceduresHandler());
            dbServer.RegisterCommandHandlerMethods(typeof(TestDML), typeof(DemoHandler1)); // dml.methods(+text) => handler(+text)

            StoreLakeDabaseAccessorGate accessorGate = new StoreLakeDabaseAccessorGate();

            DbProviderFactory dbClient = dbServer.CreateDbProviderFactoryInstance();

            xDatabaseAccessorFactory databaseAccessorFactory = new xDatabaseAccessorFactory(dbServer, accessorGate, dbClient, "Initial Catalog=MyDB");

            /* "accessor.QueryMany<TReturn,TSecond>"
             * var test12 = Helpline.Data.HelplineData.GetAttributesOfCmdbFlows(databaseAccessorFactory);
             */

            var test11 = Helpline.Repository.Data.HelplineData.GetUserInfo(databaseAccessorFactory, agent710.agentid);

            Console.WriteLine("Test11:  UserInfo.Agents : Count = " + test11.Agents.Count);
            foreach (var agent in test11.Agents)
            {
                Console.WriteLine("    " + agent.Id + ", " + agent.Name + ", HideForRouting=" + agent.HideForRouting);
            }

            db.hlsysobjectbasetype().AddRowWithValues(2, "p");
            var object_def_A = db.hlsysobjectdef().AddRowWithValues(101, "OD_A", 2);
            var object_def_B = db.hlsysobjectdef().AddRowWithValues(102, "OD_B", 2);
            var object_def_C = db.hlsysobjectdef().AddRowWithValues(103, "OD_C", 2);
            var case_def_A   = db.hlsyscasedef().AddRowWithValues(object_def_A.objectdefid);
            var case_def_B   = db.hlsyscasedef().AddRowWithValues(object_def_B.objectdefid);
            var case_def_C   = db.hlsyscasedef().AddRowWithValues(object_def_C.objectdefid);

            var test10_udt = new Helpline.Data.IntThreeSet();  //.From(new int[] { 3, 2, 1 }, (udt, item) => udt.Add(item, (100 * item) + item, (100 * item)));

            test10_udt.Add(1, object_def_A.objectdefid, 3000); // seq, def, objectid
            test10_udt.Add(2, object_def_B.objectdefid, 2000);
            test10_udt.Add(3, object_def_C.objectdefid, 1000);
            Helpline.Data.HelplineData.AddToWatchList(databaseAccessorFactory, agent710.agentid, test10_udt, out bool test10);
            Console.WriteLine("test10: " + test10);

            Helpline.Data.HelplineData.AdministrationRefreshRelationModels(databaseAccessorFactory);

            var test8 = Helpline.Data.HelplineData.CanExecute(databaseAccessorFactory, agent710.agentid, 123);

            Console.WriteLine("test8: " + test8);

            var test7 = TestDML.GetAllAgentIdentities(databaseAccessorFactory);

            foreach (var row in test7)
            {
                Console.WriteLine(row);
            }

            var test6 = TestDML.GetAllAgentIds(databaseAccessorFactory);

            foreach (var row in test6)
            {
                Console.WriteLine(row);
            }

            var test5 = TestDML.GetAllAgentInfos(databaseAccessorFactory);

            foreach (var row in test5)
            {
                Console.WriteLine(row.Id + " | " + row.Name + " | " + row.IsActive);
            }

            var name = TestDML.GetAgentNameById(databaseAccessorFactory, 712).Single();

            Console.WriteLine(name);
            var fname = TestDML.GetAgentInfoById(databaseAccessorFactory, 712).Single();

            Console.WriteLine(fname);
            var desc = TestDML.GetAgentsDescriptionById(databaseAccessorFactory, 712);

            Console.WriteLine("GetAgentsDescriptionById:" + desc);

            var test4 = TestDML.GetAllAgentNames(databaseAccessorFactory);

            foreach (var row in test4)
            {
                Console.WriteLine(row);
            }
        }
 public StoreLakeDabaseAccessor(DataSet db, StoreLakeDabaseAccessorGate accessorGate, Dibix.IDatabaseAccessor accessor)
 {
     this.db       = db;
     this.gate     = accessorGate;
     this.accessor = accessor;
 }