Exemple #1
0
        public async Task <MessageResult> Send(InvokeMessage message)
        {
            var watch = Stopwatch.StartNew();

            try
            {
                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug("准备发送消息");
                }
                var callback = RegistCallbackAsync(message.Id);
                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(message)}");
                }
                //发送
                await _sender.Send(message);

                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug("消息发送成功");
                }
                return(await callback);
            }
            finally
            {
                watch.Stop();
                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug($"send message {watch.ElapsedMilliseconds} ms");
                }
            }
        }
Exemple #2
0
 public async Task <T> Send <T>(object message)
 {
     try
     {
         _logger.LogDebug("准备发送消息");
         var microMessage = new MicroMessage(message);
         var callback     = RegistCallbackAsync <T>(microMessage.Id);
         try
         {
             _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(microMessage)}");
             //发送
             await _sender.Send(microMessage);
         }
         catch (Exception exception)
         {
             _logger.LogError(exception, "与服务端通讯时发生了异常");
             throw new SpearException("与服务端通讯时发生了异常");
         }
         _logger.LogDebug("消息发送成功");
         return(await callback);
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "消息发送失败。");
         throw new SpearException("消息发送失败");
     }
 }
Exemple #3
0
 internal void RegisteredMessageSender(IMessageSender messageSender, Type messageType)
 {
     if (IsEnabled())
     {
         RegisteredMessageSender(messageSender.Path, messageSender.GetType().Name, messageType.ToString());
     }
 }
        public async Task <IActionResult> CreateCommentary(CommentaryViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var relatedBlog = _context.Blogs.FirstOrDefault(x => x.Id == model.BlogId);

            if (relatedBlog == null)
            {
                return(Redirect(pathToHome));
            }


            var commentary = new Commentary()
            {
                Text     = model.Text, Blog = relatedBlog, BlogId = model.BlogId,
                DateTime = DateTime.Now, User = await _userManager.GetUserAsync(User)
            };

            _context.Commentaries.Add(commentary);
            _context.SaveChanges();
            _messageSender.Send(_messageSender.GetType().ToString());
            return(Redirect(pathToBlogs));
        }
 public static void RegisterView(IMessageSender viewModel)
 {
     Type viewModelType = viewModel.GetType();
     if (_views.ContainsKey(viewModelType))
     {
         IMessageListener listener = Activator.CreateInstance(_views[viewModelType]) as IMessageListener;
         listener.Initialize(viewModel);
         _registeredViews.Add(listener);
     }
 }
Exemple #6
0
        protected SqlBus(IMessageSender sender, ITextSerializer serializer)
        {
            if (!typeof(ISqlBus).IsAssignableFrom((sender.GetType())))
            {
                throw new InvalidCastException(
                          "El sender debe implementar ISqlBus para poder incluirlo en transacciones distribuidas al bus");
            }

            this.sender     = sender;
            this.serializer = serializer;
        }
Exemple #7
0
        public async Task <T> Send <T>(object message)
        {
            var watch = Stopwatch.StartNew();

            try
            {
                _logger.LogDebug("准备发送消息");
                var microMessage = new MicroMessage(message);
                var callback     = RegistCallbackAsync <T>(microMessage.Id);
                try
                {
                    if (_logger.IsEnabled(LogLevel.Debug))
                    {
                        _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(microMessage)}");
                    }
                    //发送
                    await _sender.Send(microMessage);
                }
                catch (Exception exception)
                {
                    if (exception is SpearException)
                    {
                        throw;
                    }
                    _logger.LogError(exception, "与服务端通讯时发生了异常");
                    throw new SpearException("与服务端通讯时发生了异常");
                }

                _logger.LogDebug("消息发送成功");
                return(await callback);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "消息发送失败。");
                throw new SpearException("消息发送失败");
            }
            finally
            {
                watch.Stop();
                _logger.LogDebug($"send message {watch.ElapsedMilliseconds} ms");
            }
        }
Exemple #8
0
 public void AddSender(IMessageSender sender)
 {
     _logger.Info(this, $"Adding {sender.GetType().Name} sender '{sender.SenderName}'");
     _senders.Add(sender);
 }
 internal void RegisteredMessageSender(IMessageSender messageSender, Type messageType)
 {
     if (IsEnabled())
         RegisteredMessageSender(messageSender.GetType().Name, messageSender.Path, messageType.ToString());
 }