コード例 #1
0
        public override void Apply(IdentityUser user, UserPropertyChange change)
        {
            var s   = change.ChangeValue as string;
            var cmd = new ChangeCustomerAccountPasswordCommand(user.Id, s);

            CommandBus.Send(cmd);
        }
コード例 #2
0
        public override void Apply(IdentityUser user, UserPropertyChange change)
        {
            var claim = change.ChangeValue as Claim;
            var cmd   = new AppendCustomerAccountClaimCommand(user.Id, claim);

            CommandBus.Send(cmd);
        }
コード例 #3
0
        public static void ApplyRules(this IdentityUser user, UserPropertyChange change)
        {
            var rules = FetchMatchingRules(change.ChangeType);

            foreach (var r in rules)
            {
                r.Apply(user, change);
            }
        }
コード例 #4
0
        public override void Apply(IdentityUser user, UserPropertyChange change)
        {
            if (change == null || change.ChangeValue == null)
            {
                return;
            }

            var login = change.ChangeValue as UserLoginInfo;
            var cmd   = new AppendCustomerAccountSocialLoginCommand(user.Id, login.LoginProvider, login.ProviderKey);

            CommandBus.Send(cmd);
        }
コード例 #5
0
 public abstract void Apply(IdentityUser user, UserPropertyChange change);
コード例 #6
0
        /// <summary>
        /// 解析包体,从buf的开头位置解析起
        /// <remark>abu 2008-02-18 </remark>
        /// </summary>
        /// <param name="buf">The buf.</param>
        protected override void ParseBody(ByteBuffer buf)
        {
#if DEBUG
            Client.LogManager.Log(ToString() + " " + Utils.Util.ToHex(buf.ToByteArray()));
#endif
            Empty = false;
            // 检查消息长度,至少要有16字节,因为我们需要前16字节做为确认发回
            if (buf.Remaining() < 16)
            {
                throw new PacketParseException("收到的消息太短,抛弃该消息");
            }
            // 得到前16个字节用作回复
            Reply = buf.GetByteArray(16);
            // 读取消息头
            buf.Position = 0;
            Header       = new ReceiveIMHeader();
            Header.Read(buf);
            // 检查输入流可用字节
            if (!buf.HasRemaining())
            {
                Empty = true;
                return;
            }
            // 判断消息类型
            int len = 0;
            switch (Header.Type)
            {
            case RecvSource.FRIEND_0801: //手机消息
                buf.Position += 10;      //buf.GetInt();
                ParseNormalIM(buf);
                break;

            case RecvSource.FRIEND_0802:
                ParseNormalIM(buf);
                break;

            case RecvSource.FRIEND_09:
                buf.Position += 11;
                ParseNormalIM(buf);
                break;

            case RecvSource.FRIEND_09SP1:
                buf.Position += 2;
                int len1 = buf.GetUShort();
                buf.Position += len1;
                ParseNormalIM(buf);
                break;

            case RecvSource.STRANGER:
                /* 是从好友或者陌生人处发来的消息 */
                ParseNormalIM(buf);
                break;

            case RecvSource.TEMP_SESSION:
                TempSessionIM = new TempSessionIM();
                TempSessionIM.Read(buf);
                break;

            case RecvSource.SYS_MESSAGE:
                /* 是系统消息 */
                buf.GetInt();    //00 00 00 00
                ParseSystemMessage(buf);
                break;

            case RecvSource.CLUSTER_09:
                /* 群消息09 */
                ParseClusterIM09(buf);
                break;

            case RecvSource.CLUSTER:

                /* 群消息 */
                ParseClusterIM(buf);
                break;

            case RecvSource.TEMP_CLUSTER:
                /* 临时群消息 */
                ParseTempClusterIM(buf);
                break;

            case RecvSource.UNKNOWN_CLUSTER:
                ParseUnknownClusterIM(buf);
                break;

            case RecvSource.BIND_USER:
                SMS = new SMS();
                SMS.ReadBindUserSMS(buf);
                break;

            case RecvSource.MOBILE_QQ:
                SMS = new SMS();
                SMS.ReadMobileQQSMS(buf);
                break;

            case RecvSource.MOBILE_QQ_2:
                SMS = new SMS();
                SMS.ReadMobileQQ2SMS(buf);
                break;

            case RecvSource.MOBILE:
                SMS = new SMS();
                SMS.ReadMobileSMS(buf);
                break;

            case RecvSource.CREATE_CLUSTER:
            case RecvSource.ADDED_TO_CLUSTER:
            case RecvSource.DELETED_FROM_CLUSTER:
                ExternalId  = buf.GetInt();
                ClusterType = (ClusterType)buf.Get();
                Sender      = buf.GetInt();
                break;

            case RecvSource.APPROVE_JOIN_CLUSTER:
            case RecvSource.REJECT_JOIN_CLUSTER:
            case RecvSource.REQUEST_JOIN_CLUSTER:
                ExternalId  = buf.GetInt();
                ClusterType = (ClusterType)buf.Get();
                Sender      = buf.GetInt();
                len         = buf.Get() & 0xFF;
                byte[] b = buf.GetByteArray(len);
                Message = Utils.Util.GetString(b);
                break;

            case RecvSource.CLUSTER_NOTIFICATION:
                ExternalId  = buf.GetInt();
                ClusterType = (ClusterType)buf.Get();
                OpCode      = buf.Get();
                MemberQQ    = buf.GetInt();
                Role        = buf.Get();
                Sender      = ExternalId;
                break;

            case RecvSource.SIGNATURE_CHANGE:
                SignatureOwner = buf.GetInt();
                ModifiedTime   = buf.GetInt();
                len            = buf.Get() & 0xFF;
                Signature      = Utils.Util.GetString(buf, len);
                break;

            case RecvSource.QQLIVE:
                QQLive = new QQLive();
                QQLive.Read(buf);
                break;

            case RecvSource.MEMBER_LOGIN_HINT:
                buf.Get();
                break;

            case RecvSource.CUSTOM_HEAD_CHANGE:
                int count = buf.Get() & 0xFF;
                if (count > 0)
                {
                    HeadChanges = new List <CustomHead>();
                    while (buf.HasRemaining())
                    {
                        CustomHead change = new CustomHead();
                        change.Read(buf);
                        HeadChanges.Add(change);
                    }
                }
                break;

            case RecvSource.PROPERTY_CHANGE:
                PropertyChange = new UserPropertyChange();
                PropertyChange.Read(buf);
                break;

            case RecvSource.INPUT_STATE_CHANGE: //输入状态
                buf.GetInt();                   //00 00 00 00
                Sender = buf.GetInt();          //09 58 8C 87
                buf.Get();                      //00
                break;

            default:
                // 其他类型的消息我们现在没有办法处理,忽略
                Client.LogManager.Log(ToString() + " Unknown RecvSource=0x" + Header.Type.ToString("X"));
                break;
            }
        }
コード例 #7
0
        public override void Apply(IdentityUser user, UserPropertyChange change)
        {
            var cmd = new ResetCustomerAccountAccessFailedCountCommand(user.Id);

            CommandBus.Send(cmd);
        }