Пример #1
0
 private async Task <bool> DoesMemberExist(MemberToLoginDto memberToLoginDto)
 {
     return(await _memberRepository.AnyAsync(m =>
                                             (!string.IsNullOrEmpty(m.LoginName) &&
                                              !string.IsNullOrEmpty(memberToLoginDto.LoginName) &&
                                              m.LoginName.Equals(memberToLoginDto.LoginName, StringComparison.CurrentCultureIgnoreCase)) ||
                                             (!string.IsNullOrEmpty(m.EmailAddress) &&
                                              !string.IsNullOrEmpty(memberToLoginDto.EmailAddress) &&
                                              m.EmailAddress.Equals(memberToLoginDto.EmailAddress, StringComparison.CurrentCultureIgnoreCase))));
 }
        /// <summary>
        /// 创建会员
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <bool> Handle(CreateMemberCommand request, CancellationToken cancellationToken)
        {
            //验证账号是否存在
            if (await _memberRepository.AnyAsync(p => p.PhoneNumber == request.PhoneNumber))
            {
                throw new WlException("号码已注册");
            }
            //验证手机号是否被添加
            if (await _userRepository.AnyAsync(p => p.PhoneNumber == request.PhoneNumber))
            {
                throw new WlException("此号码已被添加为员工,无法注册.请联系管理员");
            }
            var allowUserNumber = _configuration["Allocation:allowUserNumber"];
            var member          = new Domain.Member(request.UserName, request.PhoneNumber, request.Company, allowUserNumber.ToInt(0).Value);

            member = await _memberRepository.InsertAndGetIdAsync(member);

            //优先创建member表数据,member.id可以获取到
            member.CreateMemberUser(request.Password);
            member.CreateMemberFeatureMenu();
            await _memberRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

            return(true);
        }