Пример #1
0
        public OperationResult Whisper(PersonalTextMessage msg)
        {
            var e = new ChatEventArgs
            {
                CallbackType = CallbackType.ReceiveWhisper,
                Person       = msg.From,
                Message      = msg.Text
            };
            var opResult = new OperationResult();


            EventHandler <ChatEventArgs> personTo;

            lock (SyncObj)
            {
                personTo = GetPersonHandler(msg.To.Name);
                if (personTo == null)
                {
                    opResult.Success = false;
                    var em = $"Пользователь с именем {msg.To.Name} не найден";
                    opResult.Errors.Add(new OperationError {
                        ErrorMessage = em
                    });

                    Logger.Error(em);
                    return(opResult);
                }
            }

            ResetTimer();
            personTo.BeginInvoke(this, e, EndAsync, null);
            // предотвращаем повторное появление персонального сообщения у отправителя
            if (personTo != _eventHandler)
            {
                _eventHandler.BeginInvoke(this, e, EndAsync, null);
            }

            Logger.Info("{0} шепнул: {1}", msg.From.Name, msg.Text);

            opResult.Success = true;
            return(opResult);
        }
Пример #2
0
 public void Whisper(PersonalTextMessage msg)
 {
     _serviceProxy.Whisper(msg);
 }
Пример #3
0
 public OperationResult Whisper(PersonalTextMessage msg)
 {
     return(ExecuteCommand(proxy => proxy.Whisper(msg)));
 }