Esempio n. 1
0
    /// <summary>
    /// 修改信件状态
    /// </summary>
    /// <param name="mailDic"></param>
    public static void ChangeMailType(Dictionary <int, MailData> mailDic, Action endAction)
    {
        List <MailData> mailDatas = new List <MailData>();

        foreach (var item in mailDic)
        {
            if (_mailDic.ContainsKey(item.Key))
            {
                if ((MailState)_mailDic[item.Key].State != item.Value._type)
                {
                    mailDatas.Add(item.Value);
                }
            }
        }
        if (mailDatas != null && mailDatas.Count > 0)
        {
            CSChangeMailState cSChangeMailState = new CSChangeMailState();
            for (int i = 0; i < mailDatas.Count; i++)
            {
                MailData          mailData          = mailDatas[i];
                CSMailStateStruct cSMailStateStruct = new CSMailStateStruct();
                cSMailStateStruct.MailId    = mailData._mailID;
                cSMailStateStruct.MailState = (int)mailData._type;
                cSChangeMailState.MailInfo.Add(cSMailStateStruct);
            }
            ProtocalManager.Instance().SendCSChangeMailState(cSChangeMailState, (data) =>
            {
                Debug.Log("修改成功");
                //修改本地数据
                for (int i = 0; i < mailDatas.Count; i++)
                {
                    MailData madata = mailDatas[i];
                    if (_mailDic.ContainsKey(madata._mailID))
                    {
                        if (madata._type == MailState.DeleteState)
                        {
                            _mailDic.Remove(madata._mailID);
                        }
                        else
                        {
                            _mailDic[madata._mailID].State = (int)madata._type;
                        }
                    }
                }

                endAction?.Invoke();
            }, (er) =>
            {
                Debug.Log("修改失败Code:" + er.webErrorCode + "Message:" + er.ErrorMessage);
            });
        }
        else
        {
            endAction?.Invoke();
        }
    }
Esempio n. 2
0
        public void SendCSChangeMailState(CSChangeMailState cschangemailstate, Action <SCEmtpyChangeMailState> ResponseSCEmtpyChangeMailStateCallBack, Action <ErrorInfo> errorCallBack, bool isShowDefaultTip = true)
        {
            OpCodeType opCodeType = ListOPRelation.GetOpCodeTypeByRequest <CSChangeMailState> ();

            ProtoSendMethod.BusinessRequest <SCEmtpyChangeMailState>(cschangemailstate, opCodeType, ResponseSCEmtpyChangeMailStateCallBack, errorCallBack, isShowDefaultTip);
        }