コード例 #1
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();
        }
コード例 #2
0
        static async Task ImagesGetAsyncMUltiple(DbAgent agent)
        {
            if (agent.ConnectionLevel == ConnectionLevel.AllInOne)
            {
                await agent.OpenConnectionAsync();
            }

            DataSItem itm = new DataSItem();

            itm.Schema = "general";

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



            for (int i = 0; i < 1000; i++)
            {
                ExecAsyncResult res1 = await itm.ExecuteDataReaderByRefAsync <Img>(agent);

                IBag <Img> images = res1.Object as IBag <Img>;
                Console.WriteLine("Item Count : " + images.Objects.Count.ToString() + "  " + res1.ToString());
            }



            if (agent.ConnectionLevel == ConnectionLevel.AllInOne)
            {
                agent.Dispose();
            }
        }
コード例 #3
0
        static void ModelsGET(DbAgent agent)
        {
            DataSItem _selectedProcedure = new DataSItem();

            _selectedProcedure.Schema = "auto";
            _selectedProcedure.Name   = "Models_Get";

            DataSet ds = new DataSet();

            //  _selectedProcedure.FillPRocedureParamsFromSQLAgent(agent);
            _selectedProcedure.ExecDataSet(agent, out ds);

            DataTable dt = ds.Tables[0];


            foreach (DataRow rw in dt.Rows)
            {
                foreach (var s in rw.ItemArray)
                {
                    Console.Write(s.ToString() + " - ");
                }
                Console.WriteLine();
                // Console.WriteLine(rw[0].ToString());
            }
        }
コード例 #4
0
        //Data Source=FREEDY-PC;Initial Catalog=Mars_db;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
        static void Main(string[] args)
        {
            DbAgent agent = new DbAgent("marsDb", "Data Source=FREEDY;Initial Catalog=Mars_db;Integrated Security=True",
                                        true);

            //  DbAgent mrAgent = new DbAgent("Mircelal",
            //                            @"Data Source=MIRJALAL\SQLEXPRESS;Initial Catalog=payment;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", true);

            Stopwatch sw = new Stopwatch();

            Console.WriteLine("Start !");
            sw.Start();

            // NewImages(100,agent);

            //   NewImages(1000000 ,mrAgent);

            // ImagesGet(2, agent);

            // GetImgsync(agent);
            //Item Count : 158328  [Code : 1 - Execution Time :  356 ms  ] - Type : ExecByRef
            //Item Count : 158328  [Code : 1 - Execution Time :  977 ms  ] - Type : ExecByINheritance
            ReflectionGetAsync(agent).Wait();
            //InheritanceGEtAsync(agent).Wait();

            //ImagesGigImagesGET(2, agent).Wait();
            sw.Stop();

            Console.WriteLine("Compleated : " + sw.ElapsedMilliseconds.ToString());
            Console.ReadKey();
        }
コード例 #5
0
        static async void NewImages(int count, DbAgent agent)
        {
            //Images_NewINstance

            DataSItem itm = new DataSItem
            {
                //  itm.Schema = "general";
                Schema = "dbo",
                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;
        }
コード例 #6
0
        static async void ImagesGet(int count, DbAgent agent)
        {
            //Images_NewINstance

            DataSItem itm = new DataSItem();

            itm.Schema = "general";

            itm.Name = "Images_Get";
            // 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.ExecuteDataReaderByRefAsync <Img>(agent);
                IBag <Img> images   = res.Object as IBag <Img>;


                Console.WriteLine("Item Count : " + images.Objects.Count.ToString() + "  " + 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;
        }
コード例 #7
0
 static void TestAgentTisposing(DbAgent agent)
 {
     using (agent)
     {
     }
     GC.Collect();
     SqlConnection con = agent.CreateConnection();
 }
コード例 #8
0
ファイル: Form1.cs プロジェクト: ccjameslai/Job_Project
        private void ConnectToDb()
        {
            string filePath = Directory.GetCurrentDirectory() + @"\system.ini";

            dbInfo = FstDatabaseInformationReader.GetFromIni(filePath, "STDB");

            dbAgent = DbAgentFactory.CreateDbAgent(dbInfo);
        }
コード例 #9
0
        private async Task LoadProcedures(DbAgent agent)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            _currentFactory = await SqlManager.GetProceduresFactoryAsync(agent);

            sw.Stop();
            Console.WriteLine("GetProceduresFactoryAsync - Time : " + sw.ElapsedMilliseconds.ToString());
        }
コード例 #10
0
        public Exporter(DbAgent dbAgent, string exportDiretory)
        {
            this.dbAgent = dbAgent;

            upperLimitOfPieceCount = 800;

            this.exportDiretory = exportDiretory;

            if (!Directory.Exists(exportDiretory))
            {
                Directory.CreateDirectory(exportDiretory);
            }
        }
コード例 #11
0
        static async void ImagesGetAsyncNewTest(DbAgent agent)
        {
            if (agent.ConnectionLevel == ConnectionLevel.AllInOne)
            {
                await agent.OpenConnectionAsync();
            }

            DataSItem itm = new DataSItem();

            itm.Schema = "general";

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


            List <Task <ExecAsyncResult> > _alltaskst = new List <Task <ExecAsyncResult> >();

            for (int i = 0; i < 2; i++)
            {
                Task <ExecAsyncResult> t = itm.ExecuteDataReaderByRefAsync <Img>(agent);
                _alltaskst.Add(t);
            }



            while (_alltaskst.Count > 0)
            {
                Task <ExecAsyncResult> fintask = await Task.WhenAny(_alltaskst);

                _alltaskst.Remove(fintask);

                ExecAsyncResult result = await fintask;
                IBag <Img>      images = result.Object as IBag <Img>;
                Console.WriteLine("Item Count : " + images.Objects.Count.ToString() + "  " + result.ToString());
            }

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

            //  Console.WriteLine(string.Format("Starting task {0}", x));
            // await Task.Delay(1000);
            //Thread.Sleep(methodWait);
            //  Console.WriteLine(string.Format("Finishing task {0}", x));

            if (agent.ConnectionLevel == ConnectionLevel.AllInOne)
            {
                agent.Dispose();
            }
        }
コード例 #12
0
        static async Task ReflectionGetAsync(DbAgent agent)
        {
            DataSItem itm = new DataSItem();

            itm.Schema = "general";

            itm.Name = "Images_Get";
            // itm.AddParam(new DataParam("@path", CustomSqlTypes.String));
            itm.AddReturnParam(CustomSqlTypes.Int);

            ExecAsyncResult res = await itm.ExecuteDataReaderByRefAsync <Img>(agent);

            IBag <Img> images = res.Object as IBag <Img>;

            Console.WriteLine("Item Count : " + images.Objects.Count.ToString() + "  " + res.ToString());
        }
コード例 #13
0
        public static bool WriteToFileFromServer(string filepath, DbAgent agent = null)
        {
            bool result = false;

            SettingsHelperManager.CreateDocumentTemplate(filepath);
            DbCommandManagar.SetConfiguration(filepath);
            DbCommandManagar.LoadDocument();
            _tempDoc.Load(filepath);



            ProcedureFactory factory = GetProceduresFactory(agent);

            result = DbCommandManagar.AddFactory(factory);

            return(result);
        }
コード例 #14
0
        public static async Task <ProcedureFactory> GetProceduresFactoryAsync(DbAgent agent = null)
        {
            ProcedureFactory fact = new ProcedureFactory();


            Dictionary <string, DataSItem> procedures = await  GetAllSqlProceduresAsync(agent);

            foreach (DataSItem value in procedures.Values)
            {
                value.FillPRocedureParamsFromSQLAgent(agent);
            }


            fact.SetProcedures(procedures);

            return(fact);
        }
コード例 #15
0
        public static List <Exam> getExams()
        {
            List <Exam>     examlist = new List <Exam>();
            string          sql      = "SELECT * FROM exam";
            MySqlDataReader reader   = new DbAgent().getAgent(sql).ExecuteReader();

            Exam e;

            while (reader.Read())
            {
                e = new Exam((int)reader["id"], (string)reader["name"], (string)reader["code"], (string)reader["description"],
                             (int)reader["qcount"], (int)reader["duration"], (int)reader["marks"], (int)reader["negativemarks"], null, (DateTime)reader["starttime"], (DateTime)reader["endtime"]);
                examlist.Add(e);
            }

            reader.Close();
            return(examlist);
        }
コード例 #16
0
        public static Dictionary <string, DataSItem> GetAllSqlProcedures(DbAgent agent = null)
        {
            string source;

            Dictionary <string, DataSItem> procedures = new Dictionary <string, DataSItem>();

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

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

                    using (SqlCommand cmd = new SqlCommand(_getAllProcedures, con))
                    {
                        cmd.CommandType = CommandType.Text;

                        SqlDataReader reader = cmd.ExecuteReader();
                        while (reader.Read())
                        {
                            DataSItem proc = new DataSItem();
                            proc.ConnectionString = "-1";
                            proc.Schema           = reader[0].ToString();
                            proc.Name             = reader[1].ToString();
                            procedures.Add(proc.Value, proc);
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                throw exc;
            }

            return(procedures);
        }
コード例 #17
0
        public static bool userEmailExists(string email)
        {
            string sql = "SELECT * FROM  tb_user "
                         + "WHERE UserEmail = @email ";

            MySqlCommand cmd = new DbAgent().getAgent(sql);

            cmd.Prepare();
            cmd.Parameters.AddWithValue("@email", email);

            MySqlDataReader reader = cmd.ExecuteReader();

            if (reader.Read())
            {
                reader.Close();
                return(true);
            }

            reader.Close();
            return(false);
        }
コード例 #18
0
        static void GetImgsync(DbAgent agent)
        {
            DataSItem itm = new DataSItem();

            itm.Schema = "general";

            itm.Name = "Images_Get";
            // itm.AddParam(new DataParam("@path", CustomSqlTypes.String));
            itm.AddReturnParam(CustomSqlTypes.Int);
            IBag <Img> images;

            ExecResult res = itm.ExecuteDataReaderByRef(agent, out images);


            foreach (Img img in images.Objects)
            {
                Console.WriteLine(string.Format("Id : {0} - Path : {1}", img.Id.ToString(), img.Path));
            }


            Console.WriteLine("Item Count : " + images.Objects.Count.ToString() + "  " + res.ToString());
        }
コード例 #19
0
        public int registerUser()
        {
            if (userEmailExists(this.email))
            {
                return(0);
            }

            string sql = "INSERT INTO tb_user (UserName,UserEmail,UserPassword,UserType) VALUES (@name,@email,@password,@type)";

            MySqlCommand cmd = new DbAgent().getAgent(sql);

            cmd.Prepare();

            cmd.Parameters.AddWithValue("@name", this.name);
            cmd.Parameters.AddWithValue("@email", this.email);
            cmd.Parameters.AddWithValue("@password", this.password);
            cmd.Parameters.AddWithValue("@type", this.type);

            int check = (int)cmd.ExecuteNonQuery();

            return(check);
        }
コード例 #20
0
        //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);
                    }
                }
            }
        }
コード例 #21
0
        public static int authUser(String email, String password)
        {
            string sql = "SELECT * FROM  tb_user "
                         + "WHERE UserEmail = @email "
                         + "AND UserPassword  = @password";

            MySqlCommand cmd = new DbAgent().getAgent(sql);

            cmd.Prepare();
            cmd.Parameters.AddWithValue("@email", email);
            cmd.Parameters.AddWithValue("@password", password);

            MySqlDataReader reader = cmd.ExecuteReader();
            int             uid    = -1;

            if (reader.Read())
            {
                uid = (int)reader["UserId"];
            }

            reader.Close();
            return(uid);
        }
コード例 #22
0
        private async void btnLoad_Click(object sender, EventArgs e)
        {
            try
            {
                _currentAgent   = new DbAgent(txtName.Text, txtConstr.Text, chkState.Checked);
                btnLoad.Enabled = false;
                await  LoadProcedures(_currentAgent);

                _procedures         = new BindingList <DataSItem>(_currentFactory.Procedures.Values.ToArray());
                lstProcs.DataSource = _procedures;


                btnLoad.Enabled = true;
                rTxtresult.AppendColorText(string.Format(" {0} - procedures are  loaded  .  ", _currentFactory.Procedures.Count.ToString()), Color.GreenYellow);
                _isloaded = true;
                BtnStates(true);
            }
            catch (Exception ex)
            {
                rTxtresult.AppendColorText(ex.ToString(), Color.Red);
                BtnStates(false);
            }
        }
コード例 #23
0
        public static List <Question> getQuestions(Exam exam)
        {
            List <Question> qlist = new List <Question>();
            string          sql   = "SELECT * FROM question WHERE examid=@eid";

            MySqlCommand cmd = new DbAgent().getAgent(sql);

            cmd.Prepare();
            cmd.Parameters.AddWithValue("@eid", exam.id);

            MySqlDataReader reader = cmd.ExecuteReader();

            Question q;

            while (reader.Read())
            {
                q = new Question((int)reader["id"], (string)reader["q"], (string)reader["op1"], (string)reader["op2"], (string)reader["op3"], (string)reader["op4"], (string)reader["opCorrect"], (int)exam.id);
                qlist.Add(q);
            }

            reader.Close();
            return(qlist);
        }
コード例 #24
0
        public static User getUser(int id)
        {
            string sql = "SELECT * FROM  tb_user "
                         + "WHERE UserId = @id";

            MySqlCommand cmd = new DbAgent().getAgent(sql);

            cmd.Prepare();
            cmd.Parameters.AddWithValue("@id", id);

            User u = null;

            MySqlDataReader reader = cmd.ExecuteReader();

            if (reader.Read())
            {
                u             = new User((int)reader["UserId"], (string)reader["UserName"], (string)reader["UserEmail"], (string)reader["UserPassword"], (string)reader["UserType"]);
                u.lastLogin   = (DateTime)reader["UserLastLogin"];
                u.loginStatus = true;
            }

            reader.Close();
            return(u);
        }
コード例 #25
0
        static async Task ImagesGigImagesGET(int count, DbAgent agent)
        {
            DataSItem itm = new DataSItem();

            itm.Schema = "general";

            itm.Name = "Images_Get";
            // 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() =>
            {
                Console.WriteLine("Start! ");
                // itm.Params["@path"].Value = Guid.NewGuid().ToString();
                ExecAsyncResult res = await itm.ExecuteDataReaderByRefAsync <Img>(agent);
                IBag <Img> images   = res.Object as IBag <Img>;
                Console.WriteLine("Item Count : " + images.Objects.Count.ToString() + "  " + res.ToString());
            }, TaskCreationOptions.LongRunning));

            await compleateT;
        }
コード例 #26
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();
        }
コード例 #27
0
 public static Task <bool> WriteToFileAsync(this ProcedureFactory factory, string filepath, DbAgent agent = null)
 {
     return(Task.Factory.StartNew(() =>
     {
         return WriteFactoryFile(factory, filepath, agent);
     }));
 }