Ejemplo n.º 1
0
        // MongoDB에 유저를 등록하는 메소드.
        public static async Task <UserValidation> GetJoinResult(string userId, string userPw)
        {
            var userValidation = new UserValidation();

            userValidation.Id = userId;

            var    collection = GetCollection <DBUser>(UserDBName, LoginCollectionName);
            DBUser data;

            try
            {
                data = await collection.Find(x => x._id == userId).FirstOrDefaultAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                userValidation.Result = ErrorCode.MongoDBFindError;
                return(userValidation);
            }

            // 유저 정보가 이미 있다면, 유저 정보가 있다고 적어놓고 반환한다.
            if (data != null)
            {
                userValidation.Result = ErrorCode.SignInIdAlreadExist;
                return(userValidation);
            }

            // 유저 정보가 없다면, 새로 넣어준다.
            var newUser = new DBUser()
            {
                _id = userId,
                UId = DateTime.Now.Ticks,
                _pw = userPw
            };

            await collection.InsertOneAsync(newUser);

            userValidation.Result = ErrorCode.None;

            return(userValidation);
        }
Ejemplo n.º 2
0
        // Login시 유저 정보가 맞는지를 확인해주는 함수.
        public static async Task <UserValidation> GetUserValidation(string userId, string userPw)
        {
            var userValidation = new UserValidation();

            userValidation.Id = userId;

            // Find MongoDB
            var    collection = GetCollection <DBUser>(UserDBName, LoginCollectionName);
            DBUser userData;

            try
            {
                userData = await collection.Find(x => x._id == userId).FirstOrDefaultAsync();
            }
            catch (Exception e)
            {
                // 에러가 난 경우 에러를 적고 반환.
                Console.WriteLine(e.Message);
                userValidation.Result = ErrorCode.MongoDBFindError;

                return(userValidation);
            }

            if (string.IsNullOrEmpty(userData._id))
            {
                // 유저 정보가 없다면 에러 반환.
                userValidation.Result = ErrorCode.ValidationInvalidId;
            }
            else
            {
                // 패스워드가 일치한다면 정상 값을, 일치하지 않는다면 에러값을 적어준다.
                userValidation.Result = (userData._pw != userPw) ? ErrorCode.ValidationInvalidPw : ErrorCode.None;
            }

            return(userValidation);
        }