示例#1
0
        public async Task CReadNoteReq(ChatSession session, CReadNoteReqMessage message)
        {
            Logger.Debug()
            .Account(session)
            .Message("Id:{0}", message.Id)
            .Write();

            var mail = session.Player.Mailbox[message.Id];

            if (mail == null)
            {
                Logger.Error()
                .Account(session)
                .Message("Mail {0} not found", message.Id)
                .Write();

                await session.SendAsync(new SReadNoteAckMessage(0, new NoteContentDto(), 1))
                .ConfigureAwait(false);

                return;
            }

            mail.IsNew = false;
            await session.Player.Mailbox.UpdateReminderAsync()
            .ConfigureAwait(false);

            await session.SendAsync(new SReadNoteAckMessage(mail.Id, mail.Map <Mail, NoteContentDto>(), 0))
            .ConfigureAwait(false);
        }
        public void CReadNoteReq(ChatSession session, CReadNoteReqMessage message)
        {
            Logger.ForAccount(session)
            .Debug("Read note {id}", message.Id);

            var mail = session.Player.Mailbox[message.Id];

            if (mail == null)
            {
                Logger.ForAccount(session)
                .Error("Mail {id} not found", message.Id);

                session.SendAsync(new SReadNoteAckMessage(0, new NoteContentDto(), 1));
                return;
            }

            mail.IsNew = false;
            session.Player.Mailbox.UpdateReminderAsync();
            session.SendAsync(new SReadNoteAckMessage(mail.Id, mail.Map <Mail, NoteContentDto>(), 0));
        }
        public async Task <bool> OnHandle(MessageContext context, CReadNoteReqMessage message)
        {
            var session = context.GetSession <Session>();
            var plr     = session.Player;
            var logger  = plr.AddContextToLogger(_logger);

            logger.Debug("Read note {Id}", message.Id);

            var mail = session.Player.Mailbox[(long)message.Id];

            if (mail == null)
            {
                logger.Error("Mail={Id} not found", message.Id);

                session.Send(new SReadNoteAckMessage(0, new NoteContentDto(), 1));
                return(true);
            }

            mail.IsNew = false;
            plr.Mailbox.UpdateReminder();
            session.Send(new SReadNoteAckMessage((ulong)mail.Id, mail.Map <Mail, NoteContentDto>(), 0));

            return(true);
        }