コード例 #1
0
        public async Task <IActionResult> AddMemberByLoginId([FromForm] ApplicationUser app_user)
        {
            return(await CProxy.UsingAsync(async() =>
            {
                var _result = (success : false, message : "ok");

                while (true)
                {
                    if (String.IsNullOrEmpty(app_user.mail_address) == true)
                    {
                        _result.message = "메일 주소가 필요 합니다";
                        break;
                    }

                    var _value = "";

                    var _validate = __verify_email.TryRemove(app_user.mail_address, out _value);
                    if (_validate == false)
                    {
                        _result.message = $"검증 하고자 하는 메일 주소({app_user.mail_address})가 아닙니다";
                        break;
                    }

                    _validate = _value == app_user.check_number;
                    if (_validate == false)
                    {
                        _result.message = $"메일 검증 번호({app_user.check_number})가 일치 하지 않습니다";
                        break;
                    }

                    if (String.IsNullOrEmpty(app_user.login_id) == true ||
                        String.IsNullOrEmpty(app_user.login_name) == true || String.IsNullOrEmpty(app_user.mail_address) == true
                        )
                    {
                        _result.message = "회원ID, 회원이름, 메일 주소가 필요 합니다";
                        break;
                    }

                    var _member = __db_context.tb_lion_member
                                  .Where(m => m.EmailAddress == app_user.mail_address)
                                  .SingleOrDefault();

                    if (_member == null)
                    {
                        _member = __db_context.tb_lion_member
                                  .Where(m => m.LoginId == app_user.login_id)
                                  .SingleOrDefault();

                        if (_member != null)
                        {
                            _result.message = $"동일한 회원ID({app_user.login_id})가 이미 사용 중 입니다";
                            break;
                        }

                        if (__usermgr.AddNewMember(__db_context, app_user) == false)
                        {
                            _result.message = $"모바일 장치 정보 오류 입니다";
                            break;
                        }

                        _result.message = $"신규 회원으로 등록 되었습니다";
                        _result.success = true;
                    }
                    else
                    {
                        if (_member.IsAlive == true)
                        {
                            _result.message = $"다른 회원이 이미 사용하고 있는 메일 주소({app_user.mail_address}) 입니다";
                            break;
                        }

                        if (__usermgr.ReUseMember(__db_context, _member, app_user) == false)
                        {
                            _result.message = $"모바일 장치 정보 오류 입니다";
                            break;
                        }

                        _result.message = $"기존 회원으로 등록 되었습니다";
                        _result.success = true;
                    }

                    // 가입 member(회원)에게 즉시 메일 발송 하도록 큐에 명령을 보냅니다.
                    if (_result.success == true)
                    {
                        var _choice = new dChoice()
                        {
                            login_id = app_user.login_id,
                            sequence_no = __reader.GetNextWeekSequenceNo(),
                            resend = true
                        };

                        await __pipe_client.RequestToChoicerQ(_choice);
                    }

                    break;
                }

                return Ok(new
                {
                    _result.success,
                    _result.message,

                    result = ""
                });
            }));
        }
コード例 #2
0
        public async Task <IActionResult> AddMemberByFacebook([FromForm] ApplicationUser app_user)
        {
            return(await CProxy.UsingAsync(async() =>
            {
                var _result = (success : false, message : "ok");

                while (true)
                {
                    if (String.IsNullOrEmpty(app_user.mail_address) == true)
                    {
                        _result.message = "메일 주소가 필요 합니다";
                        break;
                    }

                    var _value = "";

                    var _validate = __verify_email.TryRemove(app_user.mail_address, out _value);
                    if (_validate == false)
                    {
                        _result.message = $"검증 하고자 하는 메일 주소({app_user.mail_address})가 아닙니다";
                        break;
                    }

                    _validate = _value == app_user.check_number;
                    if (_validate == false)
                    {
                        _result.message = $"메일 검증 번호({app_user.check_number})가 일치 하지 않습니다";
                        break;
                    }

                    if (String.IsNullOrEmpty(app_user.login_name) == true ||
                        String.IsNullOrEmpty(app_user.facebook_id) == true || String.IsNullOrEmpty(app_user.facebook_token) == true
                        )
                    {
                        _result.message = "facebook-id, facebook-token, 회원-이름이 필요 합니다";
                        break;
                    }

                    _validate = await __usermgr.VerifyFacebookToken(app_user.facebook_token, app_user.facebook_id);
                    if (_validate == false)
                    {
                        _result.message = $"facebook-token 또는 facebook-id({app_user.facebook_id}) 오류 입니다";
                        break;
                    }

                    app_user.login_id = app_user.facebook_id;

                    var _member = __db_context.TbLionMember
                                  .Where(m => m.EmailAddress == app_user.mail_address)
                                  .SingleOrDefault();

                    if (_member == null)
                    {
                        _member = __db_context.TbLionMember
                                  .Where(m => m.LoginId == app_user.facebook_id)
                                  .SingleOrDefault();

                        if (_member != null)
                        {
                            _result.message = $"동일한 facebook-id({app_user.facebook_id})가 이미 사용 중 입니다";
                            break;
                        }

                        if (__usermgr.AddNewMember(__db_context, app_user) == false)
                        {
                            _result.message = $"모바일 장치 정보 오류 입니다";
                            break;
                        }

                        _result.message = $"신규 회원으로 등록 되었습니다";
                        _result.success = true;
                    }
                    else
                    {
                        if (_member.IsAlive == true)
                        {
                            _result.message = $"다른 회원이 이미 사용하고 있는 메일 주소({app_user.mail_address}) 입니다";
                            break;
                        }

                        if (__usermgr.ReUseMember(__db_context, _member, app_user) == false)
                        {
                            _result.message = $"모바일 장치 정보 오류 입니다";
                            break;
                        }

                        _result.message = $"기존 회원으로 등록 되었습니다";
                        _result.success = true;
                    }

                    // 가입 member(회원)에게 즉시 메일 발송 하도록 큐에 명령을 보냅니다.
                    if (_result.success == true)
                    {
                        var _choice = new TChoice()
                        {
                            login_id = app_user.login_id,
                            sequence_no = WinnerReader.GetNextWeekSequenceNo(),
                            resend = true
                        };

                        await __memberQ.SendQAsync(_choice);
                    }

                    break;
                }

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

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