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(); } } }
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)); } }
public async Task <BaseMessage> Get(MsgTypes type, int id) { var handler = MessageHandlerFactory.GetHandler(type); return(await handler.Get(id)); }
public async Task <bool> Delete(MsgTypes type, int id) { var handler = MessageHandlerFactory.GetHandler(type); return(await handler.Delete(id)); }
public async Task <IEnumerable <BaseMessage> > Search(MessageSearchCondition cond) { var handler = MessageHandlerFactory.GetHandler(cond.MsgType); return(await handler.Search(cond)); }