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
            }
        }
Exemplo n.º 2
0
        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;
            }
        }