コード例 #1
0
 public static bool CheckNameUsed(MapleClient c, string name)
 {
     using (var db = new NeoMapleStoryDatabase())
     {
         return(db.Characters.Where(x => x.Name == name).Select(x => x).Any());
     }
 }
コード例 #2
0
 public static void ChangeGender(MapleClient c, string username, byte gender)
 {
     using (var db = new NeoMapleStoryDatabase())
     {
         var model = db.Accounts.Where(x => x.Username == username).Select(x => x).FirstOrDefault();
         if (model == null)
         {
             return;
         }
         model.Gender = gender != 0;
         db.SaveChangesAsync();
     }
 }
コード例 #3
0
        public static LoginResultCode Login(MapleClient c, string username, string password)
        {
            var state = LoginResultCode.Unfind;

            using (var db = new NeoMapleStoryDatabase())
            {
                db.Configuration.LazyLoadingEnabled = false;

                var model = db.Accounts.Where(x => x.Username == username).Select(x => x).Include(x => x.Characters).FirstOrDefault();

                if (model == null)
                {
                    return(state);
                }

                c.Account = model;

                if (model.LoginState != LoginStateType.NotLogin)
                {
                    state = LoginResultCode.IsLogged;
                }
                else if (model.Password != Sha256.Get(password, model.PasswordSalt))
                {
                    state = LoginResultCode.IncorrectPassword;
                }
                else if (model.IsPermanentBan || model.TempBanDate != null)
                {
                    state = LoginResultCode.Banned;
                }
                else if (model.Gender == null)
                {
                    state = LoginResultCode.GenderNeeded;
                }
                else
                {
                    db.SaveChanges();
                    state = LoginResultCode.Success;
                }
            }
            return(state);
        }