Exemplo n.º 1
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IWorkResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage = RequestMessage as IRequestMessageEventBase;
            IWorkResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.PIC_PHOTO_OR_ALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.SCANCODE_PUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.SCANCODE_WAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.LOCATION_SELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.PIC_WEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.PIC_SYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //取消订阅
                responseMessage = OnEvent_UnSubscribeRequest(RequestMessage as RequestMessageEvent_UnSubscribe);
                break;

            case Event.LOCATION:    //上报地理位置事件
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.ENTER_AGENT:    //用户进入应用的事件推送(enter_agent)
                responseMessage = OnEvent_EnterAgentRequest(RequestMessage as RequestMessageEvent_Enter_Agent);
                break;

            case Event.BATCH_JOB_RESULT:    //异步任务完成事件推送(batch_job_result)
                responseMessage = OnEvent_BatchJobResultRequest(RequestMessage as RequestMessageEvent_Batch_Job_Result);
                break;

            case Event.change_contact:
                var ccRequestMessage = RequestMessage as IRequestMessageEvent_Change_Contact_Base;
                switch (ccRequestMessage.ChangeType)
                {
                case ContactChangeType.create_user:
                    responseMessage = OnEvent_ChangeContactCreateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Create);
                    break;

                case ContactChangeType.update_user:
                    responseMessage = OnEvent_ChangeContactUpdateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Update);
                    break;

                case ContactChangeType.delete_user:
                    responseMessage = OnEvent_ChangeContactDeleteUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Base);
                    break;

                case ContactChangeType.create_party:
                    responseMessage = OnEvent_ChangeContactCreatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Create);
                    break;

                case ContactChangeType.update_party:
                    responseMessage = OnEvent_ChangeContactUpdatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Update);
                    break;

                case ContactChangeType.delete_party:
                    responseMessage = OnEvent_ChangeContactDeletePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Base);
                    break;

                case ContactChangeType.update_tag:
                    responseMessage = OnEvent_ChangeContactUpdateTagRequest(RequestMessage as RequestMessageEvent_Change_Contact_Tag_Update);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的Event.change_contact下属请求信息", null);
                }
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Event事件类型请求
        /// </summary>
        public virtual IWorkResponseMessageBase OnEventRequest(IRequestMessageEventBase requestMessage)
        {
            var strongRequestMessage = RequestMessage as IRequestMessageEventBase;
            IWorkResponseMessageBase responseMessage = null;

            switch (strongRequestMessage.Event)
            {
            case Event.CLICK:    //菜单点击
                responseMessage = OnEvent_ClickRequest(RequestMessage as RequestMessageEvent_Click);
                break;

            case Event.VIEW:    //URL跳转(view视图)
                responseMessage = OnEvent_ViewRequest(RequestMessage as RequestMessageEvent_View);
                break;

            case Event.PIC_PHOTO_OR_ALBUM:    //弹出拍照或者相册发图
                responseMessage = OnEvent_PicPhotoOrAlbumRequest(RequestMessage as RequestMessageEvent_Pic_Photo_Or_Album);
                break;

            case Event.SCANCODE_PUSH:    //扫码推事件
                responseMessage = OnEvent_ScancodePushRequest(RequestMessage as RequestMessageEvent_Scancode_Push);
                break;

            case Event.SCANCODE_WAITMSG:    //扫码推事件且弹出“消息接收中”提示框
                responseMessage = OnEvent_ScancodeWaitmsgRequest(RequestMessage as RequestMessageEvent_Scancode_Waitmsg);
                break;

            case Event.LOCATION_SELECT:    //弹出地理位置选择器
                responseMessage = OnEvent_LocationSelectRequest(RequestMessage as RequestMessageEvent_Location_Select);
                break;

            case Event.PIC_WEIXIN:    //弹出微信相册发图器
                responseMessage = OnEvent_PicWeixinRequest(RequestMessage as RequestMessageEvent_Pic_Weixin);
                break;

            case Event.PIC_SYSPHOTO:    //弹出系统拍照发图
                responseMessage = OnEvent_PicSysphotoRequest(RequestMessage as RequestMessageEvent_Pic_Sysphoto);
                break;

            case Event.subscribe:    //订阅
                responseMessage = OnEvent_SubscribeRequest(RequestMessage as RequestMessageEvent_Subscribe);
                break;

            case Event.unsubscribe:    //取消订阅
                responseMessage = OnEvent_UnSubscribeRequest(RequestMessage as RequestMessageEvent_UnSubscribe);
                break;

            case Event.LOCATION:    //上报地理位置事件
                responseMessage = OnEvent_LocationRequest(RequestMessage as RequestMessageEvent_Location);
                break;

            case Event.ENTER_AGENT:    //用户进入应用的事件推送(enter_agent)
                responseMessage = OnEvent_EnterAgentRequest(RequestMessage as RequestMessageEvent_Enter_Agent);
                break;

            case Event.BATCH_JOB_RESULT:    //异步任务完成事件推送(batch_job_result)
                responseMessage = OnEvent_BatchJobResultRequest(RequestMessage as RequestMessageEvent_Batch_Job_Result);
                break;

            case Event.change_contact:
                var ccRequestMessage = RequestMessage as IRequestMessageEvent_Change_Contact_Base;
                switch (ccRequestMessage.ChangeType)
                {
                case ContactChangeType.create_user:
                    responseMessage = OnEvent_ChangeContactCreateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Create);
                    break;

                case ContactChangeType.update_user:
                    responseMessage = OnEvent_ChangeContactUpdateUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Update);
                    break;

                case ContactChangeType.delete_user:
                    responseMessage = OnEvent_ChangeContactDeleteUserRequest(RequestMessage as RequestMessageEvent_Change_Contact_User_Base);
                    break;

                case ContactChangeType.create_party:
                    responseMessage = OnEvent_ChangeContactCreatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Create);
                    break;

                case ContactChangeType.update_party:
                    responseMessage = OnEvent_ChangeContactUpdatePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Update);
                    break;

                case ContactChangeType.delete_party:
                    responseMessage = OnEvent_ChangeContactDeletePartyRequest(RequestMessage as RequestMessageEvent_Change_Contact_Party_Base);
                    break;

                case ContactChangeType.update_tag:
                    responseMessage = OnEvent_ChangeContactUpdateTagRequest(RequestMessage as RequestMessageEvent_Change_Contact_Tag_Update);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的Event.change_contact下属请求信息", null);
                }
                break;

            //外部联系人事件相关
            case Event.CHANGE_EXTERNAL_CONTACT:
                var cecRequestMessage = RequestMessage as IRequestMessageEvent_Change_ExternalContact_Base;
                switch (cecRequestMessage.ChangeType)
                {
                case ExternalContactChangeType.add_external_contact:
                    responseMessage =
                        OnEvent_ChangeExternalContactAddRequest(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_Add);
                    break;

                case ExternalContactChangeType.edit_external_contact:
                    OnEvent_ChangeExternalContactUpdateRequest(
                        requestMessage as RequestMessageEvent_Change_ExternalContact_Modified);
                    break;

                case ExternalContactChangeType.add_half_external_contact:
                    responseMessage =
                        OnEvent_ChangeExternalContactAddHalfRequest(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_Add_Half);
                    break;

                case ExternalContactChangeType.del_external_contact:
                    responseMessage =
                        OnEvent_ChangeExternalContactDelRequest(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_Del);
                    break;

                case ExternalContactChangeType.del_follow_user:
                    responseMessage = OnEvent_ChangeExternalContactDelFollowUserRequest(
                        RequestMessage as RequestMessageEvent_Change_ExternalContact_Del_FollowUser);
                    break;

                case ExternalContactChangeType.msg_audit_approved:
                    responseMessage =
                        OnEvent_ChangeExternalContactMsgAudit(
                            RequestMessage as RequestMessageEvent_Change_ExternalContact_MsgAudit);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的外部联系人事件Event.CHANGE_EXTERNAL_CONTACT下属请求信息", null);
                }
                break;

            case Event.CHANGE_EXTERNAL_CHAT:    //客户群变更事件
                var cechat = RequestMessage as RequestMessageEvent_Change_External_Chat_Base;
                switch (cechat.ChangeType)
                {
                case ExternalChatChangeType.create:
                    responseMessage = OnEvent_ChangeExternalChatCreateRequest(RequestMessage as RequestMessageEvent_Change_External_Chat_Create);
                    break;

                case ExternalChatChangeType.update:
                    responseMessage = OnEvent_ChangeExternalChatUpdateRequest(RequestMessage as RequestMessageEvent_Change_External_Chat_Update);
                    break;

                case ExternalChatChangeType.dismiss:
                    responseMessage = OnEvent_ChangeExternalChatDismissRequest(RequestMessage as RequestMessageEvent_Change_External_Chat_Dismiss);
                    break;

                default:
                    throw new UnknownRequestMsgTypeException("未知的客户群变更事件Event.CHANGE_EXTERNAL_CHAT下属请求信息", null);
                }
                break;

            case Event.LIVING_STATUS_CHANGE:    //直播事件回调
                responseMessage = OnEvent_Living_Status_ChangeRequest(RequestMessage as RequestMessageEvent_Living_Status_Change_Base);
                break;

            default:
                throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
            }
            return(responseMessage);
        }