public async Task Claim(ulong side) { DateTime curTime = DateTime.Now; DateTime lastMessage; lastMessage = _cooldowns.GetUserCooldownsForCommand("InfiniteDieCreate", Context.User.Id); if (lastMessage + new TimeSpan(3, 0, 0) > curTime) { await Context.Channel.SendErrorAsync("You may only use this command once every 3 hours!"); return; } _cooldowns.AddUserCooldowns("InfiniteDieCreate", Context.User.Id, curTime); DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; ulong DiceID = 0; if (_conn.IsConnected()) { string query = "SELECT DiceID FROM dice WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); var reader = await cmd.ExecuteReaderAsync(); if (!reader.HasRows) { return; } while (await reader.ReadAsync()) { DiceID = (ulong)reader.GetInt64(0); } _conn.Close(); } if (DiceID != 0) { await Context.Channel.SendErrorAsync("You cannot claim a side owned by someone."); return; } if (_conn.IsConnected()) { string query = "INSERT INTO dice(DiceNumber, DiceOwner) VALUES (@did, @dOwner)"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@did", side); cmd.Parameters.AddWithValue("@dOwner", Context.User.Id); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } }
public async Task Delete(ulong side) { DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; ulong CurrentOwnerID = 0; ulong DiceID = 0; if (_conn.IsConnected()) { string query = "SELECT DiceID,DiceOwner FROM dice WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); var reader = await cmd.ExecuteReaderAsync(); if (!reader.HasRows) { return; } while (await reader.ReadAsync()) { DiceID = (ulong)reader.GetInt64(0); CurrentOwnerID = (ulong)reader.GetInt64(1); } _conn.Close(); } if (CurrentOwnerID != Context.User.Id || DiceID == 0) { await Context.Channel.SendErrorAsync("You cannot clear a side you do not own."); return; } if (_conn.IsConnected()) { string query = "DELETE FROM content WHERE DiceID=@did"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@did", DiceID); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } if (_conn.IsConnected()) { string query = "DELETE FROM dice WHERE DiceID=@did"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@did", DiceID); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } await Context.Channel.SendSuccessAsync($"Side ${side} successfully deleted."); }
public async Task AdminDelete(ulong side) { DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; ulong DiceID = 0; if (_conn.IsConnected()) { string query = "SELECT DiceID FROM dice WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); var reader = await cmd.ExecuteReaderAsync(); if (!reader.HasRows) { return; } while (await reader.ReadAsync()) { DiceID = (ulong)reader.GetInt64(0); } _conn.Close(); } if (DiceID == 0) { await Context.Channel.SendErrorAsync("This side does not exist, you do not need to delete it!"); return; } if (_conn.IsConnected()) { string query = "DELETE FROM content WHERE DiceID=@did"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@did", DiceID); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } if (_conn.IsConnected()) { string query = "DELETE FROM dice WHERE DiceID=@did"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@did", DiceID); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } await Context.Channel.SendSuccessAsync($"Side ${side} forcefully deleted."); }
public async Task ResetWeebPass() { //Get the user IUser user = Context.User; //Open DB DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; //Fetched user string fetchedUserName = await GetExistingUser(_conn, user); //If user exists do nothing if (fetchedUserName == null) { await Context.Channel.SendErrorAsync("There is no account under your Discord ID."); return; } //Ok so now we know they exist, we need to do a few things. if (_conn.IsConnected()) { //Set new user to 1 so they reset their PW string q2 = "UPDATE users SET NewUser=@nu WHERE DiscordID=@di"; var cmd2 = new MySqlCommand(q2, _conn.Connection); cmd2.Parameters.AddWithValue("@nu", 1); cmd2.Parameters.AddWithValue("@di", user.Id); await cmd2.ExecuteNonQueryAsync(); _conn.Close(); } //Now we can generate them a password string PlainTextPass = CreatePassword(16); string CryptedPass = Crypter.Blowfish.Crypt(PlainTextPass, _cryptopts); //Now to update the pass in the DB if (_conn.IsConnected()) { //Set new user to 1 so they reset their PW string q2 = "UPDATE users SET Password=@nu WHERE DiscordID=@di"; var cmd2 = new MySqlCommand(q2, _conn.Connection); cmd2.Parameters.AddWithValue("@nu", CryptedPass); cmd2.Parameters.AddWithValue("@di", user.Id); await cmd2.ExecuteNonQueryAsync(); _conn.Close(); } //DM the user await user.SendMessageAsync("Your username: "******"\nYour password: "******"\nYou'll be asked to change your password on login.\nhttps://cynicalpopcorn.me/weebnation/index.php"); }
public async Task Transfer(ulong side, IGuildUser userToTransfer) { DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; ulong CurrentOwnerID = 0; if (_conn.IsConnected()) { string query = "SELECT DiceOwner FROM dice WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); var reader = await cmd.ExecuteReaderAsync(); if (!reader.HasRows) { return; } while (await reader.ReadAsync()) { CurrentOwnerID = (ulong)reader.GetInt64(0); } _conn.Close(); } if (CurrentOwnerID != Context.User.Id) { await Context.Channel.SendErrorAsync("You cannot transfer a side you do not own."); return; } if (_conn.IsConnected()) { string query = "UPDATE dice SET DiceOwner=@newOwner WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); cmd.Parameters.AddWithValue("@newOwner", userToTransfer.Id); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } await Context.Channel.SendSuccessAsync($"Side {side} was successfully transferred to {userToTransfer.Username} from {Context.User.Username}."); }
public void Success(string message, string username) { DBconnection db = new DBconnection(); if (db.InsertQuery(Logging("SUCCESS", message, username)) != -1) { db.Close(); } else { mess?.Invoke("Не удалось подключиться к БД"); } }
public void Info(string message, string username) { DBconnection db = new DBconnection(); if (db.InsertQuery(Logging("INFO", message, username)) != -1) { db.Close(); } else { var logToFile = new LogToFile(); logToFile.Error("Не удалось подключиться к БД"); } }
private void ButtonSignUp_Click(object sender, RoutedEventArgs e) { DBconnection dBconnection = new DBconnection(); dBconnection.ConnectDB(); if (dBconnection.IsConnect()) { string query = $"INSERT INTO Account(login, pass, status) " + $"VALUES ('{InputLogin.Text}', '{InputPassword.Password}', 'I am tomato');"; dBconnection.InsertQuery(query); } dBconnection.Close(); SignIn signIn = new SignIn(); signIn.Show(); this.Close(); }
public async Task AdminTransfer(ulong side, IGuildUser userToTransfer) { DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; if (_conn.IsConnected()) { string query = "UPDATE dice SET DiceOwner=@newOwner WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); cmd.Parameters.AddWithValue("@newOwner", userToTransfer.Id); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } await Context.Channel.SendSuccessAsync($"Side {side} was forcefully transferred to {userToTransfer.Username}. Ouch."); }
private async Task <string> GetExistingUser(DBconnection _conn, IUser user) { string fetchedUserName = null; //Check if (_conn.IsConnected()) { string q2 = "SELECT * FROM users WHERE DiscordID=@di"; var cmd2 = new MySqlCommand(q2, _conn.Connection); cmd2.Parameters.AddWithValue("@di", user.Id); var reader2 = await cmd2.ExecuteReaderAsync(); //_logger.Log("Second set up", "InfiniteDie"); while (await reader2.ReadAsync()) { fetchedUserName = reader2.GetString(1); } _conn.Close(); } //If user exists do nothing return(fetchedUserName); }
public async Task Register(string username = null) { //Get the user IUser user = Context.User; //Open DB DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; //If user exists do nothing if (await GetExistingUser(_conn, user) != null) { await Context.Channel.SendErrorAsync("There is already an account under your DiscordID."); return; } //If username is null, we'll use their discord name if (username == null) { username = user.Username; } string fetchedUserName = null; //Check if username already exists if (_conn.IsConnected()) { string q2 = "SELECT * FROM users WHERE Username=@un"; var cmd2 = new MySqlCommand(q2, _conn.Connection); cmd2.Parameters.AddWithValue("@un", username); var reader2 = await cmd2.ExecuteReaderAsync(); //_logger.Log("Second set up", "InfiniteDie"); while (await reader2.ReadAsync()) { fetchedUserName = reader2.GetString(1); } _conn.Close(); } if (fetchedUserName != null) { await Context.Channel.SendErrorAsync("That username is taken."); return; } //Now we can generate them a password string PlainTextPass = CreatePassword(16); string CryptedPass = Crypter.Blowfish.Crypt(PlainTextPass, _cryptopts); //Now to update the pass in the DB if (_conn.IsConnected()) { //Set new user to 1 so they reset their PW string q2 = "INSERT INTO users(Username, Password, UserType, NewUser, DiscordID) VALUES (@u, @p, @ut, @nu, @di)"; var cmd2 = new MySqlCommand(q2, _conn.Connection); cmd2.Parameters.AddWithValue("@u", username); cmd2.Parameters.AddWithValue("@p", CryptedPass); cmd2.Parameters.AddWithValue("@ut", 0); cmd2.Parameters.AddWithValue("@nu", 1); cmd2.Parameters.AddWithValue("@di", user.Id); await cmd2.ExecuteNonQueryAsync(); _conn.Close(); } //DM the user await user.SendMessageAsync("Your username: "******"\nYour password: "******"\nYou'll be asked to change your password on login.\nhttps://cynicalpopcorn.me/weebnation/index.php"); }
public void SendMail() { try { TcclClient TC = new TcclClient(); member.Open("dbkintai"); string planCon = "EXEC NewTimeCard_EmployeeOverTimeLimitSendEmail"; member.selectSql(planCon); DataSet myDataSet = member.ds; WriteLog(myDataSet.Tables.Count.ToString());//log for (int j = 0; j < myDataSet.Tables.Count; j++) { string blockID = "0"; string topicTypeID = "3"; //作業指示 //string topicCreaterCD = "99000109"; string topicCreaterCD = "10113982"; //songjiajun //string topicCreaterCD = "90001058";// string topicTitle = "残業時間調整指示"; string topicContent = ""; string fileIDs = ""; string receivers = ""; //string doEndTime = DateTime.Now.AddDays(30).ToString("yyyy-MM-dd"); //string doEndTime = DateTime.Now.ToString("yyyy-MM-dd"); string doEndTime = ""; string importanceID = "1"; string isPush = "0"; string isOnlyReceivers = "0"; string tagID = "0"; string _tagNM = ""; //string systemName = "AsEmployeeUpdate";//dingmingguang //string appKey = "1e85bfb42d296646db1a026da6950d02164f3444c58ed3b0a60c8e9dfe0c4eedce17f6e2b975187f5623bf72428f1da7be97f56c7ddfc6cfc3b819db9ac72a33";//dingmingguang //string systemName = "overtimecheck"; //string appKey = "664b54dfb19c87926c56dd086ba68a7a15ca11511c252eb57fff22cc3f7d65993d4aed427bdabafa550a7028c04e4a912de6c34fe972e4d9130bfdaf22a968f3";//use for test string systemName = "NewTimeCard_Entrance"; string appKey = "af51bc9cea7c384850c007ada22d54cd3a680b607b019d7bc1d9901d01017dec727c9faa14d1c256a715d2981686395f1d57f623c592b526895558fa12785820"; //string systemName = "Web_OsechiCakeOrder";//cuiweixia //string appKey = "6869a849a9dd3f6e84a7c06c1eaf7c7803acd1bd34f7a912a37077d172406371d6001eddcb15b89b5594742f29449ca2b543508a6d46458271dca687c34a3001";//cuiweixia receivers = "E" + myDataSet.Tables[j].Rows[0]["EmployeeCD"].ToString(); //一番目の上司を獲得する //receivers = "E10113982"; //string employeeCode = myDataSet.Tables[j].Rows[i]["EmployeeCode"].ToString(); //string employeeName = myDataSet.Tables[j].Rows[i]["EmployeeName"].ToString(); string OverTimeMessage = myDataSet.Tables[j].Rows[0]["OverTimeMessage"].ToString(); //一番目のOverTimeMessageを獲得する string OverTimeMessageFlg = myDataSet.Tables[j].Rows[0]["OverTimeMessageFlg"].ToString(); //一番目のOverTimeMessageFlgを獲得する if (OverTimeMessageFlg == "2") { topicContent = "<div style=\"color:red\">※特別条項 期限間近</div>"; topicContent += "<br/>"; } else { topicContent = "<div style=\"color:red\">※過重労働 調整指示</div>"; topicContent += "<br/>"; } topicContent += "<table style=\"padding-left:30px\">"; topicContent += "<tr>"; topicContent += "<td>社員CD</td>"; topicContent += "<td>氏名</td>"; topicContent += "</tr>"; for (int i = 0; i < myDataSet.Tables[j].Rows.Count; i++) { topicContent += "<tr>"; topicContent += "<td>" + myDataSet.Tables[j].Rows[i]["EmployeeCode"].ToString() + "</td>"; topicContent += "<td>" + myDataSet.Tables[j].Rows[i]["EmployeeName"].ToString() + "</td>"; topicContent += "</tr>"; } topicContent += "</table>"; topicContent += "<br/>"; topicContent += "<div>" + OverTimeMessage + "</div>"; if (myDataSet.Tables[j].Rows.Count > 0) //データがあればメールします。 { DateTime beforDT = System.DateTime.Now; string str_mail = TC.AddOtherSystemTopicInfo(blockID, topicTypeID, topicCreaterCD, topicTitle, topicContent, fileIDs, receivers, doEndTime, importanceID, isPush, isOnlyReceivers, tagID, _tagNM, systemName, appKey); DateTime afterDT = System.DateTime.Now; TimeSpan ts = afterDT.Subtract(beforDT); string myTime = ts.ToString(); WriteLog(myTime); WriteLog(receivers.ToString()); } } TC.Close(); } catch (Exception ex) { } finally { member.Close(); } }
public async Task Get(ulong side) { DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; ulong DiceID = 0; string Content = String.Empty; ulong UserID = 0; if (_conn.IsConnected()) { string q2 = "SELECT * FROM dice WHERE DiceNumber=@dn"; var cmd2 = new MySqlCommand(q2, _conn.Connection); cmd2.Parameters.AddWithValue("@dn", side); var reader2 = await cmd2.ExecuteReaderAsync(); //_logger.Log("Second set up", "InfiniteDie"); while (await reader2.ReadAsync()) { UserID = (ulong)reader2.GetInt64(2); DiceID = (ulong)reader2.GetInt64(0); } _conn.Close(); } if (DiceID == 0) { await Context.Channel.SendErrorAsync($"Side {side} is unavailable."); return; } if (_conn.IsConnected()) { //_logger.Log("DB Connection: " + _conn.IsConnected().ToString(), "InfiniteDie"); string query = "SELECT Content FROM content WHERE DiceID=@did ORDER BY RAND() LIMIT 1"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@did", DiceID); var reader = await cmd.ExecuteReaderAsync(); //_logger.Log("First command setup.", "InfiniteDie"); while (await reader.ReadAsync()) { Content = reader.GetString(0); } _conn.Close(); } if (Content == String.Empty) { Content = "-"; } //Try to resolve user IGuildUser user = await Context.Guild.GetUserAsync(UserID); string username = String.Empty; if (user == null) { username = UserID.ToString(); } else { username = user.Username; } await Context.Channel.SendSuccessAsync("Infinite Die | Side: " + side.ToString(), Content, null, "Owner: " + username); }
public async Task Create(ulong side, [Remainder] string content) { DateTime curTime = DateTime.Now; DateTime lastMessage; lastMessage = _cooldowns.GetUserCooldownsForCommand("InfiniteDieCreate", Context.User.Id); if (lastMessage + new TimeSpan(3, 0, 0) > curTime) { await Context.Channel.SendErrorAsync("You may only use this command once every 3 hours!"); return; } DBconnection _conn = DBconnection.Instance(); _conn.DBName = "cynicalp_weebnation"; bool isAvailable = false; ulong diceOwnerID = 0; _logger.Log(side.ToString(), "IDie"); if (_conn.IsConnected()) { string query = "SELECT * FROM dice WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); var reader = await cmd.ExecuteReaderAsync(); if (!(reader.HasRows)) { isAvailable = true; } else { while (await reader.ReadAsync()) { diceOwnerID = (ulong)reader.GetInt64(2); } } _conn.Close(); } if (!isAvailable && diceOwnerID != Context.User.Id) { await Context.Channel.SendErrorAsync($"Side {side} is taken."); return; } //They can have it, lets do it. if (diceOwnerID == 0) { if (_conn.IsConnected()) { string query = "INSERT INTO dice(DiceNumber, DiceOwner) VALUES (@side, @uid)"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); cmd.Parameters.AddWithValue("@uid", Context.User.Id); await cmd.ExecuteNonQueryAsync(); _conn.Close(); } } long DiceID = 0; if (_conn.IsConnected()) { string query = "SELECT DiceID FROM dice WHERE DiceNumber=@side"; var cmd = new MySqlCommand(query, _conn.Connection); cmd.Parameters.AddWithValue("@side", side); var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) { DiceID = reader.GetInt64(0); } if (DiceID == 0) { return; } _conn.Close(); } if (_conn.IsConnected()) { string query2 = "INSERT INTO content(DiceID, Content) VALUES (@did, @cont)"; var cmd2 = new MySqlCommand(query2, _conn.Connection); cmd2.Parameters.AddWithValue("@did", DiceID); cmd2.Parameters.AddWithValue("@cont", content); await cmd2.ExecuteNonQueryAsync(); _conn.Close(); } _cooldowns.AddUserCooldowns("InfiniteDieCreate", Context.User.Id, curTime); await Context.Channel.SendSuccessAsync("Side Added!"); await Context.Channel.SendSuccessAsync("Infinite Die | Side: " + side.ToString(), content, null, "Owner: " + Context.User.Username); }