/// <summary>
        ///
        /// </summary>
        /// <param name="ltctx"></param>
        /// <param name="app_user"></param>
        /// <returns></returns>
        public async Task <(Claim identity, string mail_address)> GetClaimsIdentityByFacebook(LottoLionContext ltctx, ApplicationUser app_user)
        {
            var _result = (identity : (Claim)null, mail_address : "");

            if (CheckDevice(app_user.device_type, app_user.device_id) == true)
            {
                var _member = ltctx.TbLionMember
                              .Where(m => m.LoginId == app_user.facebook_id && m.IsAlive == true)
                              .SingleOrDefault();

                if (_member != null)
                {
                    if (await VerifyFacebookToken(app_user.facebook_token, app_user.facebook_id) == true)
                    {
                        if (_member.DeviceType != app_user.device_type || _member.DeviceId != app_user.device_id)
                        {
                            _member.DeviceType = app_user.device_type;
                            _member.DeviceId   = app_user.device_id;

                            ltctx.SaveChanges();
                        }

                        _result.identity     = new Claim("UserType", "Member");
                        _result.mail_address = _member.EmailAddress;
                    }
                }
            }

            return(_result);
        }
        /// <summary>
        /// 메일 주소와 암호가 일치 하는지 확인 합니다.
        /// </summary>
        /// <param name="ltctx"></param>
        /// <param name="app_user"></param>
        /// <returns></returns>
        public (Claim identity, string mail_address) GetClaimsIdentityByLoginId(LottoLionContext ltctx, ApplicationUser app_user)
        {
            var _result = (identity : (Claim)null, mail_address : "");

            if (CheckDevice(app_user.device_type, app_user.device_id) == true)
            {
                var _member = ltctx.TbLionMember
                              .Where(m => m.LoginId == app_user.login_id && m.IsAlive == true)
                              .SingleOrDefault();

                if (_member != null)
                {
                    if (_member.DeviceType != app_user.device_type || _member.DeviceId != app_user.device_id)
                    {
                        _member.DeviceType = app_user.device_type;
                        _member.DeviceId   = app_user.device_id;

                        ltctx.SaveChanges();
                    }

                    var _hash_value = Convert.FromBase64String(_member.LoginPassword);

                    var _pass_hash = __cryptor.VerifyHash(app_user.password, hash_value: _hash_value);
                    if (_pass_hash == true)
                    {
                        _result.identity     = new Claim("UserType", "Member");
                        _result.mail_address = _member.EmailAddress;
                    }
                }
            }

            return(_result);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="login_id">로그인 사용자 아이디</param>
        /// <param name="login_name">로그인 사용자 명</param>
        /// <param name="password">암호</param>
        /// <param name="device_type">장치구분("I"phone, "A"ndroid, "W"indowsPhone</param>
        /// <param name="device_id">장치 식별자</param>
        /// <param name="mail_address">메일 주소</param>
        public bool AddNewMember(LottoLionContext ltctx, ApplicationUser app_user)
        {
            var _result = false;

            if (CheckDevice(app_user.device_type, app_user.device_id) == true)
            {
                var _new_member = new TbLionMember
                {
                    LoginId   = app_user.login_id,
                    LoginName = app_user.login_name,

                    LoginPassword = Convert.ToBase64String(__cryptor.ComputeHash(app_user.password)),

                    DeviceType = app_user.device_type,
                    DeviceId   = app_user.device_id,

                    AccessToken = "",
                    IsAlive     = true,

                    PhoneNumber  = "",
                    EmailAddress = app_user.mail_address,

                    MailError    = false,
                    IsMailSend   = true,
                    IsDirectSend = false,

                    IsNumberChoice  = true,
                    MaxSelectNumber = 30,

                    Digit1 = 0,
                    Digit2 = 0,
                    Digit3 = 0,

                    CreateTime = DateTime.Now,
                    Remark     = ""
                };

                ltctx.TbLionMember.Add(_new_member);
                ltctx.SaveChanges();

                _result = true;
            }

            return(_result);
        }
Exemple #4
0
        public async Task <IActionResult> UpdateUserInfor(ApplicationUser app_user)
        {
            return(await CProxy.Using(() =>
            {
                var _result = (success : false, message : "ok");

                while (true)
                {
                    var _login_id = __usermgr.GetLoginId(Request);
                    if (String.IsNullOrEmpty(_login_id) == true)
                    {
                        _result.message = "인증 정보에서 회원ID를 찾을 수 없습니다";
                        break;
                    }

                    var _member = __db_context.TbLionMember
                                  .Where(m => m.LoginId == _login_id && m.IsAlive == true)
                                  .SingleOrDefault();

                    if (_member == null)
                    {
                        _result.message = "회원님의 정보에 오류가 있습니다, 관리자에게 문의 하세요";
                        break;
                    }
                    else
                    {
                        if (String.IsNullOrEmpty(app_user.login_name) == false)
                        {
                            _member.LoginName = app_user.login_name;
                        }

                        if (app_user.max_select_number < 5)
                        {
                            _member.MaxSelectNumber = 5;
                        }
                        else if (app_user.max_select_number > 100)
                        {
                            _member.MaxSelectNumber = 100;
                        }
                        else
                        {
                            _member.MaxSelectNumber = app_user.max_select_number;
                        }

                        _member.Digit1 = (app_user.digit1 >= 1 && app_user.digit1 <= 45) ? app_user.digit1 : (short)0;
                        _member.Digit2 = (app_user.digit2 >= 1 && app_user.digit2 <= 45) ? app_user.digit2 : (short)0;
                        _member.Digit3 = (app_user.digit3 >= 1 && app_user.digit3 <= 45) ? app_user.digit3 : (short)0;

                        __db_context.SaveChanges();

                        _result.message = "회원 정보가 변경 되었습니다";
                        _result.success = true;
                    }

                    break;
                }

                return new OkObjectResult(new
                {
                    success = _result.success,
                    message = _result.message,

                    result = ""
                });
            }));
        }