Пример #1
0
        public async Task Update(IEnumerable <ProcessedMsg> msgs)
        {
            using (var db = new Entities()) {
                foreach (var msg in msgs)
                {
                    if (!msg.IsSuccessed)
                    {
                        var fm = new FailedMessage()
                        {
                            MsgID   = msg.MsgID,
                            MsgType = msg.MsgType,
                            Log     = msg.Error.SafeSubString(1000)
                        };
                        this.SetCreateInfo(fm);
                        db.FailedMessages.Add(fm);
                    }

                    var handler = MessageHandlerFactory.GetHandler(msg.MsgType);
                    if (handler != null)
                    {
                        handler.Update(db, msg);
                    }
                }

                this.Errors = db.GetErrors();
                if (!this.HasError)
                {
                    await db.SaveChangesAsync();
                }
            }
        }
Пример #2
0
        public async Task <bool> Put <T>(T msg) where T : BaseMessage
        {
            var handler = MessageHandlerFactory.GetHandler(msg);

            if (handler != null)
            {
                return(await handler.Handle());
            }
            else
            {
                throw new NotSupportedException(string.Format("目前不支持类型为 {0} 的消息", msg.MsgType));
            }
        }
Пример #3
0
        public async Task <BaseMessage> Get(MsgTypes type, int id)
        {
            var handler = MessageHandlerFactory.GetHandler(type);

            return(await handler.Get(id));
        }
Пример #4
0
        public async Task <bool> Delete(MsgTypes type, int id)
        {
            var handler = MessageHandlerFactory.GetHandler(type);

            return(await handler.Delete(id));
        }
Пример #5
0
        public async Task <IEnumerable <BaseMessage> > Search(MessageSearchCondition cond)
        {
            var handler = MessageHandlerFactory.GetHandler(cond.MsgType);

            return(await handler.Search(cond));
        }