public async Task Handle(BlogCreated message, IMessageHandlerContext context) { Logger.InfoFormat("Message: {0}", context.MessageId); Logger.InfoFormat("Message/AbpSession: {0}/{1}", context.MessageId, _session.GetHashCode()); Logger.InfoFormat("Message/UowManager: {0}/{1}", context.MessageId, _uowManager.GetHashCode()); Logger.InfoFormat("Message/UnitOfWork: {0}/{1}", context.MessageId, _uowManager.Current.GetHashCode()); await _blogHistoryRepository.InsertAsync(new BlogHistory() { BlogId = message.BlogId, Action = "Created" }); await _blogHistoryRepository.InsertAsync(new BlogHistory() { BlogId = message.BlogId, Action = "Created Test2" }); await _blogHistoryRepository.InsertAsync(new BlogHistory() { BlogId = message.BlogId, Action = "Created Test3" }); var blog = await _blogRepository.GetAsync(message.BlogId); blog.Name = blog.Name + DateTime.Now.ToString(); if (message.ForceException) { blog.Name = null; // Force Abp Entity Validation } }
public async Task Handle(PublishBlogChanged message, IMessageHandlerContext context) { Logger.InfoFormat("Message: {0}", context.MessageId); Logger.InfoFormat("Message/AbpSession: {0}/{1}", context.MessageId, _session.GetHashCode()); Logger.InfoFormat("Message/UowManager: {0}/{1}", context.MessageId, _uowManager.GetHashCode()); Logger.InfoFormat("Message/UnitOfWork: {0}/{1}", context.MessageId, _uowManager.Current.GetHashCode()); var blog = await _blogRepository.GetAsync(message.BlogId); await context.Publish <BlogChanged>(evt => { evt.BlogId = blog.Id; evt.Name = blog.Name; evt.ForceException = message.ForceExceptionAtBlogHistoryHandler; }); if (message.ForceExceptionAtPublishBlogEventHandler) { throw new Exception("ForceExceptionAtPublishBlogEventHandler"); } }
public override async Task Invoke(IIncomingPhysicalMessageContext context, Func <Task> next) { Logger.DebugFormat("Message: {0}", context.MessageId); // Get AbpSession IAbpSession session = IocManager.Instance.Resolve <IAbpSession>(); Logger.DebugFormat("Message/AbpSession: {0}/{1}", context.MessageId, session.GetHashCode()); AbpNServiceBusSession nsbSession = session as AbpNServiceBusSession; nsbSession.SetHeaders(context.MessageHeaders); // Get instance of UnitOfWorkManager IUnitOfWorkManager uowManager = IocManager.Instance.Resolve <IUnitOfWorkManager>(); Logger.DebugFormat("Message/UowManager: {0}/{1}", context.MessageId, uowManager.GetHashCode()); IUnitOfWorkCompleteHandle unitOfWork; try { // Start UnitOfWork unitOfWork = uowManager.Begin(); Logger.DebugFormat("Message/UnitOfWork: {0}/{1}", context.MessageId, uowManager.Current.GetHashCode()); // Call next step in pipeline await next(); // Complete UnitOfWork if no exception is raised await unitOfWork.CompleteAsync(); } catch (Exception) { // Does not Complete UnitOfWork throw; } }