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);
        }
Beispiel #3
0
        /// <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);
 }
Beispiel #5
0
        /// <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);