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(); }
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(); } }
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()); } }
//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(); }
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; }
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; }
static void TestAgentTisposing(DbAgent agent) { using (agent) { } GC.Collect(); SqlConnection con = agent.CreateConnection(); }
private void ConnectToDb() { string filePath = Directory.GetCurrentDirectory() + @"\system.ini"; dbInfo = FstDatabaseInformationReader.GetFromIni(filePath, "STDB"); dbAgent = DbAgentFactory.CreateDbAgent(dbInfo); }
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()); }
public Exporter(DbAgent dbAgent, string exportDiretory) { this.dbAgent = dbAgent; upperLimitOfPieceCount = 800; this.exportDiretory = exportDiretory; if (!Directory.Exists(exportDiretory)) { Directory.CreateDirectory(exportDiretory); } }
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(); } }
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()); }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
//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); } } } }
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); }
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); } }
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); }
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); }
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; }
/* * 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(); }
public static Task <bool> WriteToFileAsync(this ProcedureFactory factory, string filepath, DbAgent agent = null) { return(Task.Factory.StartNew(() => { return WriteFactoryFile(factory, filepath, agent); })); }