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.");
        }
Beispiel #4
0
        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}.");
        }
Beispiel #6
0
        public void Success(string message, string username)
        {
            DBconnection db = new DBconnection();

            if (db.InsertQuery(Logging("SUCCESS", message, username)) != -1)
            {
                db.Close();
            }
            else
            {
                mess?.Invoke("Не удалось подключиться к БД");
            }
        }
Beispiel #7
0
        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("Не удалось подключиться к БД");
            }
        }
Beispiel #8
0
        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.");
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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");
        }
Beispiel #12
0
        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);
        }