public async Task Handle(P2pReceived message, IMessageHandlerContext context) { var insertedItems = new List <Guid>(); if (message.Customers?.Any() ?? false) { using (var db = new DbHelper.PdpDb(_connecitonString)) { foreach (var item in message.Customers) { var result = await db.Insert(item); if (result > 0) { insertedItems.Add(item.Id);//added id to list that inserted successfully. _logger.Info($"{item} inserted successfully."); } } } } //if no data polled, publish event also. await PublishP2pCached(context, insertedItems, message.WorkflowId); _logger.Info($"{message.WorkflowId} cached."); }
public async Task Handle(P2pWorkflowStarted message, IMessageHandlerContext context) { using (var db = new DbHelper.PdpDb(DbConnectionString)) { try { var list = await db.GetListAsync<Customer>("select * from T_Customer where Status=@Status Order by Id OFFSET 0 Rows Fetch Next 10 Rows ONLY", new { Status = 0 }); await context.Publish(new P2pPolled { WorkflowId = message.WorkflowId, Customers = list }).ConfigureAwait(false); } catch (Exception ex) { await context.Publish(new AlertableExceptionOccurred(ex.Message) { Code = -1 }); } } _logger.Info($"{message.WorkflowId} polled."); }
public async Task Handle(P2pCached message, IMessageHandlerContext context) { //update status. if (message.InsertedItems?.Any() ?? false) { using (var db = new DbHelper.PdpDb(_connecitonString)) { foreach (var item in message.InsertedItems) { var result = await db.UpdateStatusAsync($"Update T_Customer set [Status]='1' where ID=@ID", new { ID = item }); if (result > 0) { _logger.Info($"Update status of {item} successfully."); } else { _logger.Warn($"Update status of {item} failed."); } } } } }