Esempio n. 1
0
        static async void NewImages(int count, DbAgent agent)
        {
            //Images_NewINstance

            DataSItem itm = new DataSItem();

            //  itm.Schema = "general";
            itm.Schema = "dbo";
            itm.Name   = "Images_NewINstance";
            itm.AddParam(new DataParam("@path", CustomSqlTypes.String));
            itm.AddReturnParam(CustomSqlTypes.Int);
            //  itm.FillPRocedureParamsFromSQLAgent(agent);
            // itm.Params.Add("@path",new DataParam());

            Task compleateT = RunLimitedNumberAtATime(10, Enumerable.Range(1, count), async x =>
                                                      Task.Factory.StartNew(async() =>
            {
                itm.Params["@path"].Value = Guid.NewGuid().ToString();
                ExecAsyncResult res       = await itm.ExecuteNonQueryAsync(agent);
                Console.WriteLine(res.ToString());
                //  Console.WriteLine(string.Format("Starting task {0}", x));
                // await Task.Delay(1000);
                //Thread.Sleep(methodWait);
                //  Console.WriteLine(string.Format("Finishing task {0}", x));
            }, TaskCreationOptions.LongRunning));

            await compleateT;
        }
Esempio n. 2
0
        static async Task NewImagesViaAgent(DbAgent agent)
        {
            DataSItem itm = new DataSItem
            {
                //  itm.Schema = "general";
                Schema = "general",
                Name   = "Images_NewINstance"
            };

            itm.AddParam(new DataParam("@path", CustomSqlTypes.String, ParamDirection.Input, Guid.NewGuid().ToString()));
            itm.AddReturnParam(CustomSqlTypes.Int);

            // itm.Params["@path"].Value = Guid.NewGuid().ToString();

            await agent.OpenConnectionAsync();

            ExecAsyncResult res = await itm.ExecuteNonQueryAsync(agent);

            Console.WriteLine(res.ToString());

            itm.Params["@path"].Value = Guid.NewGuid().ToString();
            res = await itm.ExecuteNonQueryAsync(agent);

            Console.WriteLine(res.ToString());
            agent.Dispose();
        }
        //fill  procedure with param and return
        public static void FillPRocedureParamsFromSQLAgent(this DataSItem procedure, DbAgent agent = null)
        {
            string source;

            if (agent != null)
            {
                source = agent.ConnectionString;
            }
            else
            {
                source = _currentagent.ConnectionString;
            }


            using (SqlConnection con = new SqlConnection(source))
            {
                con.Open();

                using (SqlCommand cmd = new SqlCommand(string.Format(_getParamsOFProc, procedure.Name), con))
                {
                    procedure.Params.Clear();

                    cmd.CommandType = CommandType.Text;

                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        DataParam prm = new DataParam();

                        prm.Name      = reader[0].ToString();
                        prm.Default   = "";
                        prm.Direction = GetDirection(reader[1].ToString());
                        prm.Type      = GetType(reader[2].ToString());
                        prm.SetParent(procedure);
                        procedure.AddParam(prm);
                    }
                }
            }
        }
Esempio n. 4
0
        /*
         * Start !
         * First Path  : 558278df-28d0-4bb5-82a1-87d2397569fb
         * Code : 1 - Execution Time :  224.06 ms
         * Compleated : 1256
         * Second Path  : 67e1ed21-3570-4a64-8647-5b030ea03c40
         * Code : 1 - Execution Time :  8.617 ms
         */
        static void NewImagesViaAgentSync(DbAgent agent)
        {
            DataSItem itm = new DataSItem
            {
                //  itm.Schema = "general";
                Schema = "general",
                Name   = "Images_NewINstance"
            };

            itm.AddParam(new DataParam("@path", CustomSqlTypes.String));
            itm.AddReturnParam(CustomSqlTypes.Int);
            string first = Guid.NewGuid().ToString();

            itm.Params["@path"].Value = first;
            Console.WriteLine("First Path  : " + first);
            //  agent.OpenConnection();
            //using (agent)
            //{
            // agent.OpenConnection();

            agent.OpenConnection();

            ExecResult res = itm.ExecuteNonQuery(agent);

            Console.WriteLine(res.ToString());
            first = Guid.NewGuid().ToString();


            for (int i = 0; i < 25000; i++)
            {
                first = Guid.NewGuid().ToString();
                itm.Params["@path"].Value = first;
                Console.WriteLine($"ThreadId : {Thread.CurrentThread.ManagedThreadId.ToString()} Path i : {i.ToString()}  : " + first);
                res = itm.ExecuteNonQuery(agent);
                Console.WriteLine(res.ToString());
            }

            bool   firstfin = false;
            Thread t        = new Thread(new ThreadStart(delegate
            {
                for (int i = 0; i < 25000; i++)
                {
                    first = Guid.NewGuid().ToString();
                    itm.Params["@path"].Value = first;
                    Console.WriteLine($"ThreadId : {Thread.CurrentThread.ManagedThreadId.ToString()} Path i : {i.ToString()}  : " + first);
                    res = itm.ExecuteNonQuery(agent);
                    Console.WriteLine(res.ToString());
                }

                firstfin = true;
            }));

            bool   sec = false;
            Thread t2  = new Thread(new ThreadStart(delegate
            {
                for (int i = 0; i < 25000; i++)
                {
                    first = Guid.NewGuid().ToString();
                    itm.Params["@path"].Value = first;
                    Console.WriteLine($"ThreadId : {Thread.CurrentThread.ManagedThreadId.ToString()} Path i : {i.ToString()}  : " + first);
                    res = itm.ExecuteNonQuery(agent);
                    Console.WriteLine(res.ToString());
                }
                sec = true;
            }));

            t.Start();
            t2.Start();

            while (!(firstfin && sec))
            {
                if (firstfin && sec)
                {
                    agent.Dispose();
                    break;
                }
            }


            //  agent.CloseConnection();

            //itm.Params["@path"].Value = first;
            //Console.WriteLine("Second Path  : " + first);
            //res = itm.ExecuteNonQuery(agent);
            //Console.WriteLine(res.ToString());
            //}
            //  agent.Dispose();
        }