Exemple #1
0
 /// <summary>
 /// отправить пользователю (по terminalId) некоторое сообщение
 /// </summary>
 public void SendMessageToUser(long terminalId, string message, ServiceMessageCategory cat)
 {
     try
     {
         sessionLocker.AcquireReaderLock(SessionLockTimeout);
     }
     catch (ApplicationException)
     {
         Logger.Error("SendMessageToUser read timout");
     }
     try
     {
         UserSession session;
         sessions.TryGetValue(terminalId, out session);
         if (session == null)
         {
             return;
         }
         try
         {
             sessionLocker.UpgradeToWriterLock(SessionLockTimeout);
         }
         catch (ApplicationException)
         {
             return;
         }
         session.callback.ProcessServiceMessage(cat, message);
     }
     catch (Exception ex)
     {
         Logger.Error("SendMessageToUser error", ex);
         return;
     }
     finally
     {
         sessionLocker.ReleaseLock();
     }
 }
 public void ProcessServiceMessage(ServiceMessageCategory cat, string message)
 {
 }
 public void ProcessServiceMessage(ServiceMessageCategory cat, string message)
 {
 }
Exemple #4
0
        /// <summary>
        /// пришло служебное сообщение от сервиса
        /// </summary>
        public void ProcessServiceMessage(ServiceMessageCategory cat, string message)
        {
            if (cat == ServiceMessageCategory.LogMessage)
            {
                Logger.InfoFormat("Service objectBinding: {0}", message);
                return;
            }

            var action = UserSettings.Instance.GetAccountEventAction(AccountEventCode.ServerMessage);
            if (action == AccountEventAction.DoNothing) return;

            if (cat == ServiceMessageCategory.DialogBox)
            {
                bool repeatNotification;
                NotificationBox.Show(message, Localizer.GetString("TitleServerMessage"), MessageBoxIcon.Information, out repeatNotification);
                if (!repeatNotification)
                {
                    UserSettings.Instance.SwitchAccountEventAction(AccountEventCode.ServerMessage);
                    UserSettings.Instance.SaveSettings();
                }
                return;
            }
            if (cat == ServiceMessageCategory.ServiceMessage)
            {
                ShowMsgWindowSafe(new AccountEvent("", message, AccountEventCode.ServerMessage));
                // отправить в некоторое окошко... пока не знаю, куда !!
                return;
            }
        }
 /// <summary>
 /// отправить пользователю (по terminalId) некоторое сообщение
 /// </summary>
 public void SendMessageToUser(long terminalId, string message, ServiceMessageCategory cat)
 {
     try
     {
         sessionLocker.AcquireReaderLock(SessionLockTimeout);
     }
     catch (ApplicationException)
     {
         Logger.Error("SendMessageToUser read timout");
     }
     try
     {
         UserSession session;
         sessions.TryGetValue(terminalId, out session);
         if (session == null) return;
         try
         {
             sessionLocker.UpgradeToWriterLock(SessionLockTimeout);
         }
         catch (ApplicationException)
         {
             return;
         }
         session.callback.ProcessServiceMessage(cat, message);
     }
     catch (Exception ex)
     {
         Logger.Error("SendMessageToUser error", ex);
         return;
     }
     finally
     {
         sessionLocker.ReleaseLock();
     }
 }