public static ResponseMessageBase CreateFromRequestMessage(IRequestMessageBase requestMessage, ResponseMsgType msgType) { ResponseMessageBase responseMessage = null; switch (msgType) { case ResponseMsgType.Text: responseMessage = new ResponseMessageText() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = requestMessage.CreateTime,//这个时间不是Ticks,用DateTime.Now会出错 MsgType = msgType }; break; case ResponseMsgType.News: responseMessage = new ResponseMessageNews() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = requestMessage.CreateTime, MsgType = msgType }; break; break; default: throw new ArgumentOutOfRangeException("msgType"); } return responseMessage; }
public static ResponseMessageBase CreateFromRequestMessage(IRequestMessageBase requestMessage, ResponseMsgType msgType) { ResponseMessageBase responseMessage = null; try { switch (msgType) { case ResponseMsgType.Text: responseMessage = new ResponseMessageText() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = DateTime.Now,//使用当前最新事件 MsgType = msgType }; break; case ResponseMsgType.News: responseMessage = new ResponseMessageNews() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = DateTime.Now,//使用当前最新事件 MsgType = msgType }; break; break; case ResponseMsgType.Music: responseMessage = new ResponseMessageMusic() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = DateTime.Now,//使用当前最新事件 MsgType = msgType }; break; default: throw new UnknownRequestMsgTypeException(string.Format("ResponseMsgType没有为 {0} 提供对应处理程序。", msgType), new ArgumentOutOfRangeException()); } } catch (Exception ex) { throw new WeixinException("CreateFromRequestMessage过程发生异常", ex); } return responseMessage; }
public static ResponseMessageBase CreateFromRequestMessage(IRequestMessageBase requestMessage, ResponseMsgType msgType) { ResponseMessageBase responseMessage = null; try { switch (msgType) { case ResponseMsgType.Text: responseMessage = new ResponseMessageText(); break; case ResponseMsgType.News: responseMessage = new ResponseMessageNews(); break; case ResponseMsgType.Music: responseMessage = new ResponseMessageMusic(); break; case ResponseMsgType.Image: responseMessage = new ResponseMessageImage(); break; case ResponseMsgType.Voice: responseMessage = new ResponseMessageVoice(); break; case ResponseMsgType.Video: responseMessage = new ResponseMessageVideo(); break; case ResponseMsgType.Transfer_Customer_Service: responseMessage = new ResponseMessageTransfer_Customer_Service(); break; default: throw new UnknownRequestMsgTypeException(string.Format("ResponseMsgType没有为 {0} 提供对应处理程序。", msgType), new ArgumentOutOfRangeException()); } responseMessage.ToUserName = requestMessage.FromUserName; responseMessage.FromUserName = requestMessage.ToUserName; responseMessage.CreateTime = DateTime.Now; //使用当前最新时间 } catch (Exception ex) { throw new WeixinException("CreateFromRequestMessage过程发生异常", ex); } return(responseMessage); }
private static WorkResponseMessageBase CreateFromRequestMessage(IWorkRequestMessageBase requestMessage, ResponseMsgType msgType) { //注意:SDK 内部此方法仍然是重要的最终执行的方法,只是提供了简化的重写方法,不建议外部直接调用。 WorkResponseMessageBase responseMessage = null; try { switch (msgType) { case ResponseMsgType.Text: responseMessage = new ResponseMessageText(); break; case ResponseMsgType.News: responseMessage = new ResponseMessageNews(); break; case ResponseMsgType.Image: responseMessage = new ResponseMessageImage(); break; case ResponseMsgType.Voice: responseMessage = new ResponseMessageVoice(); break; case ResponseMsgType.Video: responseMessage = new ResponseMessageVideo(); break; case ResponseMsgType.MpNews: responseMessage = new ResponseMessageMpNews(); break; case ResponseMsgType.NoResponse: responseMessage = new WorkResponseMessageNoResponse(); break; default: throw new UnknownRequestMsgTypeException(string.Format("ResponseMsgType没有为 {0} 提供对应处理程序。", msgType), new ArgumentOutOfRangeException()); } responseMessage.ToUserName = requestMessage.FromUserName; responseMessage.FromUserName = requestMessage.ToUserName; responseMessage.CreateTime = SystemTime.Now; //使用当前最新时间 } catch (Exception ex) { throw new WeixinException("CreateFromRequestMessage过程发生异常", ex); } return(responseMessage); }
/// <summary> /// 从 Xml 转换 RequestMessage 对象的处理(只是创建实例,不填充数据) /// </summary> /// <param name="responseMsgType">RequestMsgType</param> /// <param name="doc">ResponseMessage 的明文 XML</param> /// <returns></returns> public abstract TResponse GetResponseEntityMappingResult(ResponseMsgType responseMsgType, XDocument doc);
//public virtual ResponseMessageType MsgType //{ // get { return ResponseMessageType.Text; } //} /// <summary> /// 获取响应类型实例,并初始化 /// <para>如果是直接调用,建议使用CreateFromRequestMessage<T>(IRequestMessageBase requestMessage)取代此方法</para> /// </summary> /// <param name="requestMessage">请求</param> /// <param name="msgType">响应类型</param> /// <returns></returns> //[Obsolete("建议使用CreateFromRequestMessage<T>(IRequestMessageBase requestMessage)取代此方法")] private static IResponseMessageBase CreateFromRequestMessage(IRequestMessageBase requestMessage, ResponseMsgType msgType, MessageEntityEnlightener enlighten) { IResponseMessageBase responseMessage = null; try { switch (msgType) { case ResponseMsgType.Text: responseMessage = enlighten.NewResponseMessageText(); // new ResponseMessageText(); break; case ResponseMsgType.News: responseMessage = enlighten.NewResponseMessageNews(); // new ResponseMessageNews(); break; case ResponseMsgType.Music: responseMessage = enlighten.NewResponseMessageMusic(); // new ResponseMessageMusic(); break; case ResponseMsgType.Image: responseMessage = enlighten.NewResponseMessageImage(); // new ResponseMessageImage(); break; case ResponseMsgType.Voice: responseMessage = enlighten.NewResponseMessageVoice(); // new ResponseMessageVoice(); break; case ResponseMsgType.Video: responseMessage = enlighten.NewResponseMessageVideo(); // new ResponseMessageVideo(); break; case ResponseMsgType.Transfer_Customer_Service: responseMessage = enlighten.NewResponseMessageTransfer_Customer_Service(); // new ResponseMessageTransfer_Customer_Service(); break; case ResponseMsgType.NoResponse: responseMessage = new ResponseMessageNoResponse(); break; default: throw new UnknownRequestMsgTypeException(string.Format("ResponseMsgType没有为 {0} 提供对应处理程序。", msgType), new ArgumentOutOfRangeException()); } } catch (Exception ex) { throw new MessageHandlerException("CreateFromRequestMessage过程发生异常", ex); } return(responseMessage); }
public override IResponseMessageBase GetResponseEntityMappingResult(ResponseMsgType responseMsgType, XDocument doc = null) { throw new System.NotImplementedException(); }
public static ResponseMessageBase CreateFromRequestMessage(IRequestMessageBase requestMessage, ResponseMsgType msgType) { ResponseMessageBase responseMessage = null; try { switch (msgType) { case ResponseMsgType.Text: responseMessage = new ResponseMessageText() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = DateTime.Now, //使用当前最新时间 //MsgType = msgType }; break; case ResponseMsgType.News: responseMessage = new ResponseMessageNews() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = DateTime.Now, //使用当前最新时间 //MsgType = msgType }; break; case ResponseMsgType.Music: responseMessage = new ResponseMessageMusic() { ToUserName = requestMessage.FromUserName, FromUserName = requestMessage.ToUserName, CreateTime = DateTime.Now, //使用当前最新事件 //MsgType = msgType }; break; default: throw new UnknownRequestMsgTypeException(string.Format("ResponseMsgType没有为 {0} 提供对应处理程序。", msgType), new ArgumentOutOfRangeException()); } } catch (Exception ex) { throw new WeixinException("CreateFromRequestMessage过程发生异常", ex); } return(responseMessage); }
public override SuccessResponseMessage GetResponseEntityMappingResult(ResponseMsgType responseMsgType, XDocument doc = null) { throw new NotImplementedException();//不需要记录上下文,所以这里 ResponseMessage 消息可以忽略 }
/// <summary> /// 创建XmlElement节点。 /// </summary> /// <param name="doc">xml文档</param> /// <param name="name">子节点名称</param> /// <param name="data">子节点包含的数据</param> protected virtual XmlElement CreateXmlElement(XmlDocument doc, string name, ResponseMsgType data) { return(CreateXmlElement(doc, name, data.ToString("g"), XmlNodeType.CDATA)); }
public static ResponseMessageBase CreateFromRequestMessage(IRequestMessageBase requestMessage, ResponseMsgType msgType) { ResponseMessageBase responseMessageBase = null; try { throw new UnknownRequestMsgTypeException($"ResponseMsgType没有为 {msgType} 提供对应处理程序。", new ArgumentOutOfRangeException()); } catch (Exception inner) { throw new WeixinException("CreateFromRequestMessage过程发生异常", inner); } }