private static async Task <Member> GetMember()
 {
     using (var context = new Lobby.Models.CommonContext())
     {
         return(await context.member.FromSqlRaw("SELECT * FROM member").FirstOrDefaultAsync());
     }
 }
 public static async Task <List <string> > GetBannedWord()
 {
     using (var context = new Lobby.Models.CommonContext())
     {
         return(await context.banned_word.AsNoTracking().Select(x => x.word).ToListAsync());
     }
 }
Beispiel #3
0
 public static async Task UpdateMember(long member_no, long user_no)
 {
     using (var context = new Lobby.Models.CommonContext())
     {
         await context.Database.ExecuteSqlRawAsync($"upDate member set user_no = {user_no} where member_no = {member_no}");
     }
 }
Beispiel #4
0
        public static async Task <Models.Member> GetMember(string player_id)
        {
            using (var context = new Lobby.Models.CommonContext())
            {
                return(await context.member.Where(x => x.player_id == player_id).AsNoTracking().FirstOrDefaultAsync());

                //return await context.member.FromSqlRaw("seLect * FROM member WHERE player_id =@player_id", new MySqlParameter("@player_id", player_id)).AsNoTracking().FirstOrDefaultAsync();
            }
        }
Beispiel #5
0
        public static async Task <Models.Member> AddMember(Models.Member member)
        {
            using (var context = new Lobby.Models.CommonContext())
            {
                await context.member.AddAsync(member);

                await context.SaveChangesAsync();

                return(member);
            }
        }
 public static async Task <List <Models.SystemMail> > GetSystemMail(DateTime last_play_time)
 {
     try
     {
         using (var context = new Lobby.Models.CommonContext())
         {
             return(await context.system_mail.Where(x => x.submit_time > last_play_time).AsNoTracking().ToListAsync());
         }
     }
     catch (Exception e)
     {
         Log.Error(e, "GetSystemMail");
     }
     return(null);
 }
        private static async Task <List <Member> > GetMember2()
        {
            //string player_id = "' OR 1=1 -- ";
            //string player_id = "12 OR 1=1 -- ";
            string player_id = "123";

            using (var context = new Lobby.Models.CommonContext())
            {
                //return await context.member.FromSql($"SELECT * FROM member").ToListAsync();
                //string query = $"SELECT * FROM member where player_id = '{player_id.GetEscapeString()}'";
                //string query = $"SELECT * FROM member where player_id = {player_id.GetEscapeString()}";
                //return await context.member.FromSql(query).ToListAsync();

                return(await context.member.FromSqlRaw("SELECT * FROM member where player_id =@player_id", new MySqlParameter("@player_id", player_id)).ToListAsync());
            }
        }
        public static void test()
        {
            using (var context = new Lobby.Models.CommonContext())
            {
                var ret = context.member
                          .TagWith("This is my spatial query!")
                          .Where(x => x.member_no == 1).ToList();
            }

            var result = GetMember().Result;


            //TryInsert();

            var result2 = GetMember2().Result;

            var last_member = MemberQuery.GetMember("G310f55c2d9ad4c068a80fb0bcdc3d96e").Result;
        }
        private static async Task TryInsert()
        {
            int  i = 24;
            bool saveFail;

            do
            {
                saveFail = false;
                try
                {
                    // context 예외 발생시 재사용이 안되므로 다시 할당해야 한다
                    using (var context = new Lobby.Models.CommonContext())
                    {
                        var member = new Member();
                        member.user_no        = 2;
                        member.player_id      = $"12{i++}";
                        member.game_token     = "aaaaaa";
                        member.last_play_time = DateTime.UtcNow;

                        context.member.Add(member);
                        await context.SaveChangesAsync();

                        Log.Information($"member_no {member.member_no}");
                    }
                }
                catch (DbUpdateException ex)
                {
                    if (ex.InnerException != null && ((MySqlException)ex.InnerException).Number == 1062)
                    {
                        saveFail = true;
                    }
                    else
                    {
                        Log.Information(ex.ToString());
                        throw ex;
                    }
                }
                catch (Exception ex)
                {
                    Log.Information(ex.ToString());
                    throw ex;
                }
            }while (saveFail);
        }
Beispiel #10
0
        public static async Task <ErrorCode> UpdateMember(long member_no, string user_name)
        {
            try
            {
                using (var context = new Lobby.Models.CommonContext())
                {
                    var user = await context.member.Where(x => x.member_no == member_no).FirstOrDefaultAsync();

                    if (user == null && user == default(Models.Member))
                    {
                        Log.Error($"UpdateUser find member {member_no}");
                        return(ErrorCode.WrongParam);
                    }
                    user.user_name = user_name;
                    await context.SaveChangesAsync();
                }

                // sql injection
                //using (var context = new Lobby.Models.GameContext())
                //{
                //    await context.Database.ExecuteSqlCommandAsync($"upDate user set user_name = {user_name} where user_no = {user_no}");
                //}
            }
            catch (DbUpdateException ex)
            {
                if (ex.InnerException != null && ((MySqlException)ex.InnerException).Number == 1062)
                {
                    return(ErrorCode.Duplicate);
                }
                else
                {
                    Log.Error($"{ex.ToString()}");
                    return(ErrorCode.WrongParam);
                }
            }
            catch (Exception ex)
            {
                Log.Error($"{ex.ToString()}");
                return(ErrorCode.WrongParam);
            }
            return(ErrorCode.Success);
        }
Beispiel #11
0
        public static async Task <ErrorCode> UpdateMemberLastPlayTime(long member_no, DateTime currentTime)
        {
            try
            {
                using (var context = new Lobby.Models.CommonContext())
                {
                    var user = await context.member.Where(x => x.member_no == member_no).FirstOrDefaultAsync();

                    if (user == null && user == default(Models.Member))
                    {
                        Log.Error($"UpdateUser find member {member_no}");
                        return(ErrorCode.WrongParam);
                    }
                    user.last_play_time = currentTime;
                    await context.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                Log.Error($"{ex.ToString()}");
                return(ErrorCode.WrongParam);
            }
            return(ErrorCode.Success);
        }