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.");
        }
예제 #3
0
        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.");
                        }
                    }
                }
            }
        }