Exemplo n.º 1
0
        public async Task <IActionResult> WonderTradeDetail(string id)
        {
            uint i;

            if (!uint.TryParse(id, out i))
            {
                i = 0;
            }
            return(View(await DbTradelog.GetWonderTrade(i)));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RecentWonderTrades(string id)
        {
            uint i;

            if (!uint.TryParse(id, out i))
            {
                i = 0;
            }
            var model = new RecentWonderTradesModel
            {
                StartIndex = i,
                Trades     = await DbTradelog.GetWonderTradeLog(i)
            };

            return(View(model));
        }
        public static async Task ExecuteTrade(Client client1, Client client2, GTS.GamePokemon pkmn1, GTS.GamePokemon pkmn2)
        {
            var jsonstring1 = JsonConvert.SerializeObject(pkmn1);
            var jsonstring2 = JsonConvert.SerializeObject(pkmn2);

            try { await DbTradelog.LogWonderTrade(client1.Username, jsonstring1); }
            catch (Exception e) { Console.WriteLine("Error when logging WT: " + e); }
            try { await DbTradelog.LogWonderTrade(client2.Username, jsonstring2); }
            catch (Exception e) { Console.WriteLine("Error when logging WT: " + e); }

            var encoded1 = Utilities.Encoding.Base64Encode(jsonstring1);
            var encoded2 = Utilities.Encoding.Base64Encode(jsonstring2);

            await client1.SendMessage($"<WTRESULT result=2 user={client2.Username} pkmn={encoded2}>");

            await client2.SendMessage($"<WTRESULT result=2 user={client1.Username} pkmn={encoded1}>");
        }
Exemplo n.º 4
0
        public static async Task <UserRequest> GetUser(string username)
        {
            var conn = new OpenConnection();

            if (!conn.IsConnected)
            {
                conn.Close();
                return(null);
            }
            var u = new UserRequest {
                UserInfo = new UserInfo {
                    Username = username
                }
            };

            const string usercommand = "SELECT user_id, banned, base FROM users WHERE username = @param_val_1;";
            var          m           = new MySqlCommand(usercommand, conn.Connection);

            m.Parameters.AddWithValue("@param_val_1", username);
            using (var result = await m.ExecuteReaderAsync())
            {
                if (!result.HasRows)
                {
                    conn.Close();
                    return(null);
                }
                while (await result.ReadAsync())
                {
                    u.UserInfo.User_Id = (uint)result["user_id"];
                    if (result["banned"].GetType() != typeof(DBNull))
                    {
                        u.UserInfo.Banned = (bool)result["banned"];
                    }
                    else
                    {
                        u.UserInfo.Banned = false;
                    }
                    u.FriendSafariString = (string)result["base"];
                }
            }
            u.FriendSafari = new FriendSafari(u.FriendSafariString);

            const string getLoginData = "SELECT lastlogin FROM user_data WHERE user_id = @param_val_1";
            var          glc          = new MySqlCommand(getLoginData, conn.Connection);

            glc.Parameters.AddWithValue("@param_val_1", u.UserInfo.User_Id);
            using (var glcresult = await glc.ExecuteReaderAsync())
            {
                while (await glcresult.ReadAsync())
                {
                    if (glcresult["lastlogin"].GetType() != typeof(DBNull))
                    {
                        u.UserInfo.LastLoggedIn = (DateTime)glcresult["lastlogin"];
                    }
                }
            }

            //Find IPs
            const string ipcommand = "SELECT ip, ipban FROM ips WHERE user_id = @param_val_1;";
            var          n         = new MySqlCommand(ipcommand, conn.Connection);

            n.Parameters.AddWithValue("@param_val_1", u.UserInfo.User_Id);
            u.IPs = new List <IPInfo>();
            using (var ipresult = await n.ExecuteReaderAsync())
            {
                while (await ipresult.ReadAsync())
                {
                    bool ban;
                    if (ipresult["ipban"].GetType() != typeof(DBNull))
                    {
                        if (ipresult["ipban"] is sbyte)
                        {
                            ban = Convert.ToBoolean((sbyte)ipresult["ipban"]);
                        }
                        else
                        {
                            ban = (bool)ipresult["ipban"];
                        }
                    }
                    else
                    {
                        ban = false;
                    }
                    var ip = new IPInfo
                    {
                        IP     = (string)ipresult["ip"],
                        Banned = ban
                    };
                    u.IPs.Add(ip);
                }
            }
            //Find Alts----------------------------------
            const string altipcommand = "SELECT user_id FROM ips WHERE FIND_IN_SET (ip, @param_val_1) != 0";
            var          o            = new MySqlCommand(altipcommand, conn.Connection);
            var          ipl          = u.IPs.Select(ip => ip.IP).ToList();

            o.Parameters.AddWithValue("param_val_1", string.Join(",", ipl));
            var l = new List <uint>();

            using (var altipresult = await o.ExecuteReaderAsync())
            {
                while (altipresult.Read())
                {
                    l.Add((uint)altipresult["user_id"]);
                }
            }
            const string altcommand =
                "SELECT username, user_id, banned FROM users WHERE FIND_IN_SET (user_id, @param_val_1) != 0";
            var p = new MySqlCommand(altcommand, conn.Connection);

            p.Parameters.AddWithValue("param_val_1", string.Join(",", l));
            u.Alts = new List <UserInfo>();
            using (var altresult = await p.ExecuteReaderAsync())
            {
                while (altresult.Read())
                {
                    var uinfo = new UserInfo
                    {
                        User_Id  = (uint)altresult["user_id"],
                        Username = (string)altresult["username"],
                        Banned   = (bool)altresult["banned"]
                    };
                    u.Alts.Add(uinfo);
                }
            }
            //Get Tradelog
            u.Trades = await DbTradelog.GetUserTradeLog(u.UserInfo.Username);

            u.WonderTrades = await DbTradelog.GetUserWonderTradeLog(u.UserInfo.Username);

            //Get warnings
            const string warningCommand = "SELECT * FROM warnings WHERE user_id = @id";
            var          j = new MySqlCommand(warningCommand, conn.Connection);

            j.Parameters.AddWithValue("id", u.UserInfo.User_Id);
            u.Warnings = new List <WarningsModel>();
            using (var res = await j.ExecuteReaderAsync())
            {
                while (await res.ReadAsync())
                {
                    var warn = new WarningsModel
                    {
                        Id       = (uint)res["id"],
                        Reason   = (string)res["reason"],
                        Time     = (DateTime)res["time"],
                        UserId   = u.UserInfo.User_Id,
                        Username = username
                    };
                    u.Warnings.Add(warn);
                }
            }

            //Get user notes
            const string notesCommand = "SELECT * FROM usernotes WHERE user_id = @id";
            var          k            = new MySqlCommand(notesCommand, conn.Connection);

            k.Parameters.AddWithValue("id", u.UserInfo.User_Id);
            u.Notes = new List <NotesModel>();
            using (var res = await k.ExecuteReaderAsync())
            {
                while (await res.ReadAsync())
                {
                    var note = new NotesModel
                    {
                        Moderator = (string)res["moderator"],
                        Time      = (DateTime)res["time"],
                        Note      = (string)res["note"]
                    };
                    u.Notes.Add(note);
                }
            }


            u.GTS = await DbGTS.GetUserGTS(u.UserInfo.User_Id);

            conn.Close();
            return(u);
        }