public HandleParseErrArgs(MsgCmdHelperBase <TWithUi> sender, MsgDetail msgDetail, MsgCmd msgCmd, Exception exception = null) { Sender = sender; MsgDetail = msgDetail; MsgCmd = msgCmd; Exception = exception; }
protected void btnSaveUserMsgDetail_Click(object sender, EventArgs e) { List <MsgDetail> templates = new List <MsgDetail>(); for (int i = 0; i < this.cbPowerListDistributors.Items.Count; i++) { MsgDetail item = new MsgDetail { DetailType = this.cbPowerListDistributors.Items[i].Value, IsSelectedByDistributor = this.cbPowerListDistributors.Items[i].Selected ? 1 : 0 }; templates.Add(item); } VShopHelper.UpdateWeiXinMsgDetail(true, templates); templates.Clear(); for (int j = 0; j < this.cbPowerListMember.Items.Count; j++) { MsgDetail detail2 = new MsgDetail { DetailType = this.cbPowerListMember.Items[j].Value, IsSelectedByMember = this.cbPowerListMember.Items[j].Selected ? 1 : 0 }; templates.Add(detail2); } VShopHelper.UpdateWeiXinMsgDetail(false, templates); this.ShowMsg("保存成功!", true); }
/// <summary> /// 这个会根据你给出的消息,按照命令位置插入 /// </summary> /// <param name="msgDetail"></param> /// <returns></returns> public ListViewItem[] BeginParseWithString(MsgDetail msgDetail) { var texts = msgDetail.Content; var st = new List <string>(); //分块 for (int k = 0; k < msgDetail.SerCmds.Count; k++) { var cmd = msgDetail.SerCmds[k]; var t = texts.Substring(0, cmd.InPos); texts = texts.Substring(cmd.InPos, texts.Count() - cmd.InPos); st.Add(t); } st.Add(texts); var res = new ListViewItem[msgDetail.SerCmds.Count + st.Count]; res[0] = Parse(new MsgCmd(TextId, 0, new List <string> { st[0] })); //显示 for (int i = 1; i < st.Count; i++) { res[i] = Parse(msgDetail.SerCmds[i - 1]); res[i + 1] = Parse(new MsgCmd(TextId, 0, new List <string> { st[i] })); } return(res); }
/// <summary> /// 开始解析,必须要在ui线程操作 /// </summary> /// <param name="msgDetail">消息详细</param> /// <param name="uiGetter">调用时需要创建一个ui层</param> /// <returns>返回创建的ui集合</returns> public virtual TWithUi[] Parse(MsgDetail msgDetail) { TWithUi[] uis = null; if (msgDetail.SerCmds != null) { uis = new TWithUi[msgDetail.SerCmds.Count]; int i = 0; foreach (var item in msgDetail.SerCmds) { if (EnsureHasType(item.Id, item.Type)) { uis[i++] = Parse(item); } else { ParseErr?.Invoke(msgDetail); } } } return(uis); }
/// <summary> /// 新增消息明细列表 /// </summary> /// <param name="msgDetails"></param> /// <returns></returns> public ReturnResult <MsgDetail> AddMsgDetail(MsgDetail msgDetail) { bool addRes = false; msgDetail.id = Guid.NewGuid().ToString(); msgDetail.sendtime = DateTime.Now; try { addRes = _MsgDetailRepository.Add(msgDetail); } catch (Exception exp) { return(new ReturnResult <MsgDetail>(-1, exp.Message)); } if (addRes) { var msg = GetOne(p => p.id == msgDetail.msgid); if (msg != null && !string.IsNullOrEmpty(msg.id)) { msg.lastcontent = msgDetail.content; msg.updatetime = DateTime.Now; try { Update(msg); } catch (Exception exp) { logger.LogError("新增产品信息出错!", exp); } } string acceptUserid = msg.userid1 == msgDetail.senduserid ? msg.userid2 : msg.userid1; if (!string.IsNullOrEmpty(acceptUserid)) { string phone = _UserRepository.Find().Where(p => p.id == acceptUserid) .Select(q => q.phonenumber).FirstOrDefault(); //消息保存成功,发起推送 PushPayload pushPayload = new PushPayload() { Platform = new List <string> { "android" }, Audience = new Audience { Alias = new List <string> { phone, }, }, Notification = new Notification { Android = new Android { Alert = msgDetail.content, Title = msgDetail.sendnickname + "发给您一条私信!" } }, Message = new Message { Title = "私信", Content = msgDetail.content, }, }; var response = client.SendPush(pushPayload); if (response.StatusCode != System.Net.HttpStatusCode.OK) { //失败需要记录日志 logger.LogInfo(string.Format("极光推送消息失败!消息会话ID:{0}。错误详情:{1}", msg.id, response.Content)); } //response.Content "{\"error\":{\"code\":1003,\"message\":\"The alias has invalid character\"}}" //"{\"sendno\":\"0\",\"msg_id\":\"1073574972\"}" } //每发一条私信,增加1分。 var users = _UserRepository.Find().Where(p => p.id == msg.userid1 || p.id == msg.userid2).ToList(); if (users != null && users.Count() > 0) { users.ForEach(p => p.compositescores++); _UserRepository.Update(users); } return(new ReturnResult <MsgDetail>(1, msgDetail)); } else { return(new ReturnResult <MsgDetail>(-2, "消息信息保存失败!")); } }
public object AddMsgDetail(MsgDetail msgDetails) { return(_MsgService.AddMsgDetail(msgDetails)); }
partial void DeleteMsgDetail(MsgDetail instance);
partial void UpdateMsgDetail(MsgDetail instance);
partial void InsertMsgDetail(MsgDetail instance);